// editor4
import java.util.*;

public class Main {
    
    private static boolean isValid(String n) {
        if (n == null || n.isEmpty() || n.length() > 18) return false;
        for (char c : n.toCharArray()) {
            if (!Character.isDigit(c)) return false;
        }
        return true;
    }

    // Function to create palindrome by mirroring left side
    private static String makePalindrome(String s, boolean smaller) {
        int len = s.length();
        char[] arr = s.toCharArray();
        for (int i = 0; i < len / 2; i++) {
            arr[len - 1 - i] = arr[i];
        }
        String palindrome = new String(arr);

        // If we want smaller or larger than original
        if ((smaller && palindrome.compareTo(s) >= 0) || (!smaller && palindrome.compareTo(s) <= 0)) {
            // adjust middle
            char[] newArr = palindrome.toCharArray();
            int mid = (len - 1) / 2;
            while (mid >= 0) {
                if (smaller) {
                    if (newArr[mid] > '0') {
                        newArr[mid]--;
                        break;
                    } else {
                        newArr[mid] = '9';
                        mid--;
                    }
                } else {
                    if (newArr[mid] < '9') {
                        newArr[mid]++;
                        break;
                    } else {
                        newArr[mid] = '0';
                        mid--;
                    }
                }
            }
            // fix symmetry
            for (int i = 0; i < len / 2; i++) {
                newArr[len - 1 - i] = newArr[i];
            }
            palindrome = new String(newArr);

            // For all 9s case like 999 → 1001
            if (!smaller && palindrome.charAt(0) == '0') {
                palindrome = "1" + "0".repeat(len - 1) + "1";
            }
            // For all 0s case like 1000 → 999
            if (smaller && palindrome.charAt(0) == '0') {
                palindrome = "9".repeat(len - 1);
            }
        }
        return palindrome;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String n = sc.nextLine().trim();

        if (!isValid(n)) {
            System.out.println("Invalid input");
            return;
        }

        if (n.equals("0")) {
            System.out.println("1");
            return;
        }

        String smallerPalindrome = makePalindrome(n, true);
        String largerPalindrome = makePalindrome(n, false);

        long num = Long.parseLong(n);
        long small = Long.parseLong(smallerPalindrome);
        long large = Long.parseLong(largerPalindrome);

        long diffSmall = Math.abs(num - small);
        long diffLarge = Math.abs(num - large);

        if (diffSmall == diffLarge) {
            System.out.println(Math.min(small, large));
        } else if (diffSmall < diffLarge) {
            System.out.println(small);
        } else {
            System.out.println(large);
        }
    }
}
