#include <bits/stdc++.h>
using namespace std;
const int Nmax = 100000 + 10;
int n;
int nr[Nmax];
char s[Nmax], ans[Nmax];
bool ok(int L, int R) {
  int i, sum;
  if (L > R) return 0;
  for (i = 1; i <= n; ++i) nr[i] = s[i] - '0';
  if (L == 1 && nr[R] == 0) return 0;
  if (L == 2 && nr[1] != 1) return 0;
  for (nr[L] += nr[L - 1] * 10; true; L++, R--) {
    if (L == R) {
      ans[L] = nr[L] / 2 + '0';
      return nr[L] % 2 == 0;
    }
    if (L + 1 == R) {
      sum = nr[L];
      if (nr[L] == nr[R] + 11) sum--;
      ans[L] = ans[R] = sum / 2 + '0';
      if (sum & 1) ans[L]++;
      return (nr[L] == nr[R] || nr[L] == nr[R] + 11);
    }
    if (nr[L] - nr[R] != 0 && nr[L] - nr[R] != 1 && nr[L] - nr[R] != 10 &&
        nr[L] - nr[R] != 11)
      return 0;
    sum = nr[L];
    if (nr[L] == nr[R])
      ;
    if (nr[L] == nr[R] + 1 || nr[L] == nr[R] + 11) sum--, nr[L + 1] += 10;
    if (nr[L] == nr[R] + 10 || nr[L] == nr[R] + 11) {
      if (nr[R] == 9) return 0;
      for (i = R - 1; i >= L && nr[i] == 0; --i) nr[i] = 9;
      if (i == L) return 0;
      nr[i]--;
    }
    ans[L] = ans[R] = sum / 2 + '0';
    if (sum & 1) ans[L]++;
    int mata = 5;
  }
  return 1;
}
int main() {
  gets(s + 1);
  n = strlen(s + 1);
  if (ok(1, n))
    puts(ans + 1);
  else if (ok(2, n))
    puts(ans + 2);
  else
    puts("0");
  return 0;
}
