#include <bits/stdc++.h>
using namespace std;
int n;
char st[100010];
int s[100010], A[100010], ans[100010];
int put(int v, int a, int b) {
  if (v > 18 || (a == b && v & 1)) return 1;
  ans[a] = ans[b] = v / 2;
  ans[a] += v & 1;
  return 0;
}
int ok() {
  memset(ans, 0, sizeof(ans));
  for (int i = 1; i <= (n + 1) / 2; ++i) {
    if (i == n - i + 1) {
    } else if (s[i] == s[n - i + 1]) {
    } else if (i == n - i) {
      if (s[i] != s[n - i + 1] + 11) return 0;
      s[i] = s[n - i + 1] = s[i] - 1;
    } else if (s[i] == s[n - i + 1] + 1) {
      s[i + 1] += 10;
      --s[i];
    } else if (s[i] == s[n - i + 1] + 10) {
      --s[n - i];
      s[n - i + 1] += 10;
    } else if (s[i] == s[n - i + 1] + 11) {
      --s[n - i];
      s[i + 1] += 10;
      --s[i];
      if (i + 1 != n - i + 1) s[n - i + 1] += 10;
    } else
      return 0;
    if (put(s[i], i, n - i + 1)) return 0;
  }
  memset(A, 0, sizeof(A));
  for (int i = n; i; --i)
    A[i] += ans[i] + ans[n - i + 1], A[i - 1] += A[i] / 10, A[i] %= 10;
  for (int i = 0; i <= n; ++i) {
    if (A[i] != st[i] - '0') return 0;
  }
  if (!ans[1]) return 0;
  for (int i = 1; i <= n; ++i) printf("%d", ans[i]);
  return 1;
}
int ok2() {
  for (int i = 1; i <= n; ++i) s[i] = st[i] - '0';
  if (s[1] != 1) return 0;
  for (int i = 0; i < n; ++i) st[i] = st[i + 1];
  for (int i = 1; i < n; ++i) s[i] = s[i + 1];
  --n;
  s[1] += 10;
  memset(ans, 0, sizeof(ans));
  for (int i = 1; i <= (n + 1) / 2; ++i) {
    if (i == n - i + 1) {
    } else if (s[i] == s[n - i + 1]) {
    } else if (i == n - i) {
      if (s[i] != s[n - i + 1] + 11) return 0;
      s[i] = s[n - i + 1] = s[i] - 1;
    } else if (s[i] == s[n - i + 1] + 1) {
      s[i + 1] += 10;
      --s[i];
    } else if (s[i] == s[n - i + 1] + 10) {
      --s[n - i];
      s[n - i + 1] += 10;
    } else if (s[i] == s[n - i + 1] + 11) {
      --s[n - i];
      s[i + 1] += 10;
      --s[i];
      if (i + 1 != n - i + 1) s[n - i + 1] += 10;
    } else
      return 0;
    if (put(s[i], i, n - i + 1)) return 0;
  }
  memset(A, 0, sizeof(A));
  for (int i = n; i; --i)
    A[i] += ans[i] + ans[n - i + 1], A[i - 1] += A[i] / 10, A[i] %= 10;
  for (int i = 0; i <= n; ++i) {
    if (A[i] != st[i] - '0') return 0;
  }
  if (!ans[1]) return 0;
  for (int i = 1; i <= n; ++i) printf("%d", ans[i]);
  return 1;
}
int main() {
  scanf("%s", st + 1);
  n = strlen(st + 1);
  for (int i = 1; i <= n; ++i) s[i] = st[i] - '0';
  st[0] = '0';
  if (ok()) {
  } else if (ok2()) {
  } else
    printf("0\n");
  return 0;
}
