from typing import Tuple
import re


def parse_hp_condition(hp_condition: str) -> Tuple[int, int, str]:
    """
    HPと状態異常を表す文字列のパース
    :param hp_condition: '50/200' (現在HP=50, 最大HP=200, 状態異常なし) or '50/200 psn' (状態異常の時)
    :return: 現在HP, 最大HP, 状態異常('', 'psn'(毒), 'tox'(猛毒), 'par', 'brn', 'slp', 'frz', 'fnt'(瀕死))
    """
    if hp_condition == '0 fnt':
        # 瀕死の時は0という表示になっている
        # 便宜上最大HP100として返している
        return 0, 100, 'fnt'
    m = re.match('^(\\d+)/(\\d+)(?: (psn|tox|par|brn|slp|frz|fnt)|)?$', hp_condition)
    assert m is not None, f"HP_CONDITION '{hp_condition}' cannot be parsed."
    # m[3]は状態異常がないときNoneとなる
    return int(m[1]), int(m[2]), m[3] or ''