def next(n): if n == int("9" * (len(str(n)) / 2) + "5" + "1" * (len(str(n)) / 2)): return "1" * (len(str(n)) / 2 + 1) + "9" * (len(str(n)) / 2 + 1) if n == int("9" * (len(str(n)) / 2) + "1" * (len(str(n)) / 2)): return int("1" * (len(str(n)) / 2) + "5" + "9" * (len(str(n)) / 2)) if len(str(n)) % 2 == 0: for l in range(len(str(n)) / 2, len(str(n)) + 1): if str(n)[len(str(n))-l-1] + str(n)[l] == "91": continue else: return int(str(n)[:len(str(n)) - l - 1] + str(int(str(n)[len(str(n)) - l - 1]) + 1) + "1" * ((2 * l - len(str(n))) / 2) + "9" * ((2 * l - len(str(n))) / 2) + str(int(str(n)[l]) - 1) + str(n)[l + 1:]) return int(str(n)[:len(str(n)) / 2] + "5" + str(n)[len(str(n)) / 2:]) else: for l in range(len(str(n)) / 2 + 1, len(str(n)) + 1): if str(n)[len(str(n))-l-1] + str(n)[l] == "91": continue else: return int(str(n)[:len(str(n)) - l - 1] + str(int(str(n)[len(str(n)) - l - 1]) + 1) + "1" * ((2 * l - len(str(n))) / 2) + "5" + "9" * ((2 * l - len(str(n))) / 2) + str(int(str(n)[l]) - 1) + str(n)[l + 1:]) return int(str(n)[:len(str(n)) / 2] + "19" + str(n)[len(str(n)) / 2:]) n = 5 for i in range(int(raw_input()) - 1): n = next(n) print n