#include<stdio.h>
#include<string.h>
#define MAX (100001)
int toInt(char c) {
return c - '0';
}
char toChar(int i) {
return i + '0';
}
char next(char c) {
if (c == '9') return '0';
return toChar(toInt(c) + 1);
}
char prev(char c) {
if (c == '0') return '9';
return toChar(toInt(c) - 1);
}
int main() {
int i,n,j,k;
char x[MAX] = {};
unsigned long length;
if (n < 0) n = 0;
for(i = 0; i < n; i++) {
int left, right, place;
int changed = 0;
for (j = 0, k = length-1, place = 0; j < k; j++, k--, place++) {
left = toInt(x[j]);
right = toInt(x[k]);
if (left == right) continue;
if (j + 1 == k) {
if (right > left) {
while (right != left) {
right--;
}
x[j] = toChar(left);
x[k] = toChar(right);
}
if (left > right) {
while (left != right) {
right++;
}
x[k] = toChar(left);
x[j] = toChar(right);
}
continue;
}
int add;
changed = 1;
if (left < right) {
add = 10 + left - right;
} else {
add = left - right;
}
right = right + add;
if (right < 10) {
x[k] = toChar(right);
} else {
x[k] = toChar(right-10);
int t = length - place - 2;
int cont = 1;
while (t >j && cont == 1) {
x[t] = next(x[t]);
if (x[t] == 0) {
cont = 1;
} else {
cont = 0;
}
}
}
//printf("%s\n", x);
}
}
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RyaW5nLmg+CiNkZWZpbmUgTUFYICgxMDAwMDEpCgppbnQgdG9JbnQoY2hhciBjKSB7CglyZXR1cm4gYyAtICcwJzsKfQoKY2hhciB0b0NoYXIoaW50IGkpIHsKCXJldHVybiBpICsgJzAnOwp9CgpjaGFyIG5leHQoY2hhciBjKSB7CglpZiAoYyA9PSAnOScpIHJldHVybiAnMCc7CiAgICByZXR1cm4gdG9DaGFyKHRvSW50KGMpICsgMSk7Cn0KCmNoYXIgcHJldihjaGFyIGMpIHsKCWlmIChjID09ICcwJykgcmV0dXJuICc5JzsKCXJldHVybiB0b0NoYXIodG9JbnQoYykgLSAxKTsKfQoKaW50IG1haW4oKSB7CglpbnQgaSxuLGosazsKCWNoYXIgeFtNQVhdID0ge307Cgl1bnNpZ25lZCBsb25nIGxlbmd0aDsKCXNjYW5mKCIlZCIsJm4pOwoJaWYgKG4gPCAwKSBuID0gMDsKCWZvcihpID0gMDsgaSA8IG47IGkrKykgewoJCXNjYW5mKCIlcyIseCk7CgkJbGVuZ3RoID0gc3RybGVuKHgpOwoJCWludCBsZWZ0LCByaWdodCwgcGxhY2U7CgkJaW50IGNoYW5nZWQgPSAwOwoJCWZvciAoaiA9IDAsIGsgPSBsZW5ndGgtMSwgcGxhY2UgPSAwOyBqIDwgazsgaisrLCBrLS0sIHBsYWNlKyspIHsKCQkJbGVmdCA9IHRvSW50KHhbal0pOwoJCQlyaWdodCA9IHRvSW50KHhba10pOwoJCQlpZiAobGVmdCA9PSByaWdodCkgY29udGludWU7CgkJCWlmIChqICsgMSA9PSBrKSB7CgkJCQlpZiAocmlnaHQgPiBsZWZ0KSB7CgkJCQkJd2hpbGUgKHJpZ2h0ICE9IGxlZnQpIHsKCQkJCQkJcmlnaHQtLTsKCQkJCQl9CgkJCQkJeFtqXSA9IHRvQ2hhcihsZWZ0KTsKCQkJCQl4W2tdID0gdG9DaGFyKHJpZ2h0KTsKCQkJCX0KCQkJCWlmIChsZWZ0ID4gcmlnaHQpIHsKCQkJCQl3aGlsZSAobGVmdCAhPSByaWdodCkgewoJCQkJCQlyaWdodCsrOwoJCQkJCX0KCQkJCQl4W2tdID0gdG9DaGFyKGxlZnQpOwoJCQkJCXhbal0gPSB0b0NoYXIocmlnaHQpOwoJCQkJfQoJCQkJY29udGludWU7CgkJCX0KCQkJaW50IGFkZDsKCQkJY2hhbmdlZCA9IDE7CgkJCWlmIChsZWZ0IDwgcmlnaHQpIHsKCQkJCWFkZCA9IDEwICsgbGVmdCAtIHJpZ2h0OwoJCQl9IGVsc2UgewoJCQkJYWRkID0gbGVmdCAtIHJpZ2h0OwoJCQl9CgkJCXJpZ2h0ID0gcmlnaHQgKyBhZGQ7CgkJCWlmIChyaWdodCA8IDEwKSB7CgkJCQl4W2tdID0gdG9DaGFyKHJpZ2h0KTsKCQkJfSBlbHNlIHsKCQkJCXhba10gPSB0b0NoYXIocmlnaHQtMTApOwoJCQkJaW50IHQgPSBsZW5ndGggLSBwbGFjZSAtIDI7CgkJCQlpbnQgY29udCA9IDE7CgkJCQl3aGlsZSAodCA+aiAmJiBjb250ID09IDEpIHsKCQkJCQl4W3RdID0gbmV4dCh4W3RdKTsKCQkJCQlpZiAoeFt0XSA9PSAwKSB7CgkJCQkJCWNvbnQgPSAxOwoJCQkJCX0gZWxzZSB7CgkJCQkJCWNvbnQgPSAwOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQkvL3ByaW50ZigiJXNcbiIsIHgpOwoJCX0KCQlwcmludGYoIiVzXG4iLCB4KTsKCX0KCXJldHVybiAwOwp9Cgo=