N = int(input()) def is_yiwiy9_number(num: str): if num[-1] != "9": return False for i in range((len(num) - 1) // 2): if num[i] != num[len(num) - i - 1 - 1]: return False return True def over_1e9(N): return N * (10**9 // N + 1) def near_yiwiy9_number(num: str): num = num[:-1] is_even = len(num) % 2 == 0 half = num[: len(num) // 2] if is_even: return "".join([half, half[::-1], "9"]) else: mid = num[len(num) // 2] return "".join([half, mid, half[::-1], "9"]) def nxt_yiwiy9_number(num: str): num = num[:-1] is_even = len(num) % 2 == 0 half = num[: len(num) // 2] if is_even: if all(map(lambda d: d == "9", half)): is_even = False mid = "0" half = str(10 ** (len(half) - 1)) else: half = str(int(half) + 1) else: mid = num[len(num) // 2] if mid == "9": if all(map(lambda d: d == "9", half)): is_even = True half = str(10 ** (len(half))) else: mid = "0" half = str(int(half) + 1) else: mid = str(int(mid) + 1) if is_even: return "".join([half, half[::-1], "9"]) else: return "".join([half, mid, half[::-1], "9"]) NN = near_yiwiy9_number(str(over_1e9(N))) while True: NN = nxt_yiwiy9_number(NN) if int(NN) % N == 0: print(NN) break