### nearestPalindromic 
from typing import *
def f_gold(n: str) -> str:
    x = int(n)
    l = len(n)
    res = {10 ** (l - 1) - 1, 10**l + 1}
    left = int(n[: (l + 1) >> 1])
    for i in range(left - 1, left + 2):
        j = i if l % 2 == 0 else i // 10
        while j:
            i = i * 10 + j % 10
            j //= 10
        res.add(i)
    res.discard(x)
    ans = -1
    for t in res:
        if (
            ans == -1
            or abs(t - x) < abs(ans - x)
            or (abs(t - x) == abs(ans - x) and t < ans)
        ):
            ans = t
    return str(ans)