findNum := proc(str) #help parse input local i; i := 1: while (true) do if (StringTools:-IsAlpha(str[i])) then return i-2: end if: i := i+1: end do: end proc: path := "input.txt"; input := readline(path): T := table(): maxnum := parse(input): while (true) do input := readline(path): if input = 0 then break; end if: pos := findNum(input): num := parse(input[..pos]): T[num] := input[pos+2..]: end do: for i from 1 to maxnum do factored := false: for j in [indices(T)] do if i mod j[1] = 0 then factored := true: printf(T[j[1]]); end if: end do: if (not factored) then printf("%d", i): end if: printf("\n"); end do: