import java.util.*;

public class Main {
    // Helper: check palindrome
    private static boolean isPalindrome(String s) {
        int i = 0, j = s.length() - 1;
        while (i < j) {
            if (s.charAt(i) != s.charAt(j)) return false;
            i++;
            j--;
        }
        return true;
    }

    // Helper: generate palindrome candidates
    private static List<Long> generateCandidates(String nStr) {
        int len = nStr.length();
        long num = Long.parseLong(nStr);
        List<Long> candidates = new ArrayList<>();

        // Edge palindromes (all 9’s and 10^len + 1)
        candidates.add((long) Math.pow(10, len - 1) - 1); // e.g., 999 for 1000
        candidates.add((long) Math.pow(10, len) + 1);     // e.g., 10001 for 9999

        // Mirror prefix
        long prefix = Long.parseLong(nStr.substring(0, (len + 1) / 2));
        for (long i = prefix - 1; i <= prefix + 1; i++) {
            if (i < 0) continue;
            StringBuilder sb = new StringBuilder();
            String pre = String.valueOf(i);
            sb.append(pre);

            // Mirror to form palindrome
            String rev = new StringBuilder(pre.substring(0, len / 2)).reverse().toString();
            sb.append(rev);
            candidates.add(Long.parseLong(sb.toString()));
        }

        return candidates;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        if (!sc.hasNext()) {
            System.out.println("Invalid input");
            return;
        }
        String nStr = sc.nextLine().trim();

        // Validation
        if (nStr.isEmpty() || nStr.length() > 18) {
            System.out.println("Invalid input");
            return;
        }
        for (char c : nStr.toCharArray()) {
            if (!Character.isDigit(c)) {
                System.out.println("Invalid input");
                return;
            }
        }

        long num = Long.parseLong(nStr);

        // Generate candidate palindromes
        List<Long> candidates = generateCandidates(nStr);

        long best = -1;
        for (long cand : candidates) {
            if (cand == num || cand < 0) continue;
            if (best == -1 ||
                Math.abs(cand - num) < Math.abs(best - num) ||
                (Math.abs(cand - num) == Math.abs(best - num) && cand < best)) {
                best = cand;
            }
        }

        System.out.println(best);
    }
}
