import sys

def write_answer(answer, output_file):
    with open(output_file, 'a', encoding='utf-8') as file:
        file.write(answer+'\n')
def run_automaton(file_path, end_positions, output_file):
    transitions = {}

    with open(file_path, 'r', encoding='utf-8') as file:
        with open(output_file, 'w', encoding='utf-8') as file_writed:

            lines = file.readlines()

            for line in lines:
                if line.strip():  # Пропускаем пустые строки
                    parts = line.split()
                    state_from = int(parts[0])

                    if len(parts) > 1:
                        state_to = int(parts[1])

                        if len(parts) == 3:
                            symbol = parts[2]
                            transitions.setdefault(state_from, []).append((symbol, state_to))
                        else:
                            transitions[state_from] = []

        def explore_paths(current_state, current_word):
            if current_state not in transitions:
                if str(current_state) in end_positions:
                    write_answer(current_word, output_file)
                return

            possible_transitions = transitions[current_state]
            for transition_symbol, next_state in possible_transitions:
                explore_paths(next_state, current_word + transition_symbol)

        explore_paths(0, "")
def what_is_the_ended_positions(file_path):
    array = []
    with open(file_path, 'r', encoding='utf-8') as file:
        for row in file:
            line = row.strip().split('\t')
            if len(line) == 1:
                array += line
        return array
input_file = sys.argv[1]
output_file = sys.argv[2]
# file_path = "small.in"
# output_file = "small.out"
end_positions = what_is_the_ended_positions(input_file)

run_automaton(input_file, end_positions, output_file)
