#include <iostream>
#include <vector>

bool isKaibun(int n) {
  std::vector<int> k;
  if (n > 0) {
    while (n > 0) {
      k.push_back(n % 10);
      n = n / 10;
    }
    auto stt = k.begin();
    auto end = k.end() - 1;
    for (; stt != k.end(); stt++, end--)
      if (*stt != *end)
        return false;
    return true;
  } else if (n == 0)
    return true;
  else
    return false;
}

void f(int n) {
  bool stopflag = true;
  std::cout << "input: " << n << std::endl;
  for (int x = n, y = n; stopflag; x++, y--) {
    if (isKaibun(x)) { 
      std::cout << "output: " << x << std::endl;
      stopflag = false;
    }
    if (isKaibun(y) && x != y) {
      std::cout << "output: " << y << std::endl;
      stopflag = false;
    }
  }
  std::cout << std::endl;
}

int main() {
  f(0);
  f(17);
  f(100);
  f(1000);
}
/* end */
