#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
char str[maxn];
int n, x[maxn], a[maxn], b[maxn], c[maxn];
void failed() {
  puts("0");
  exit(0);
}
int main() {
  scanf("%s", str);
  n = strlen(str);
  for (int i = 0; i < n; i++) x[i] = str[i] - '0';
  for (int bgn = 0; bgn <= 1 and bgn < n; bgn++) {
    memset(a, 0, sizeof a);
    memset(b, 0, sizeof b);
    memset(c, 0, sizeof c);
    for (int i = n - 1, add = 0;; i--) {
      int j = n - 1 - i + bgn;
      if (j > i) break;
      int cur = x[i] - add;
      if (cur < 0) cur += 10;
      if (cur == 9) {
        a[i] = b[j] = 4;
        a[j] = b[i] = 5;
        continue;
      }
      if (j > 0 and (a[j - 1] + b[j - 1]) % 10 != x[j - 1]) cur += 10;
      a[i] = b[j] = cur / 2;
      a[j] = b[i] = cur - cur / 2;
      add = cur >= 10;
    }
    bool correct = 1;
    for (int i = n - 1; i > -1; i--) {
      c[i] += a[i] + b[i];
      if (c[i] >= 10) {
        if (!i) {
          correct = 0;
          break;
        }
        c[i - 1]++;
        c[i] -= 10;
      }
      if (a[i] > 9 or a[i] < 0 or b[i] > 9 or b[i] < 0 or c[i] != x[i])
        correct = 0;
    }
    if (!a[bgn]) correct = 0;
    if (correct) {
      for (int i = bgn; i < n; i++) printf("%d", a[i]);
      return 0;
    }
  }
  puts("0");
  return 0;
}
