#include <iostream>
using namespace std;
class Number
{
private:
int number[100];
int size;
int iterations;
public:
Number(int n)
{
size = 0;
iterations = 0;
while(n != 0)
{
number[size++] = n % 10;
n /= 10;
}
}
void reverseAndAdd()
{
int source[size];
for(int i=0;i<size;i++) source[i] = number[i];
for(int i=0;i<size;i++)
{
number[i] += source[size-i-1];
if(number[i] > 9)
{
if(i == size-1)
{
number[size] = 0;
size++;
}
number[i] -= 10;
number[i+1] += 1;
}
}
iterations++;
return;
}
bool isPalindrome()const
{
bool flag = true;
for(int i=0;i<size/2;i++)
{
if(number[i] != number[size-i-1])
{
flag = false;
break;
}
}
return flag;
}
friend ostream& operator<< (ostream& out, const Number &n)
{
out << n.iterations << ' ';
for(int i=n.size;i>=0;i--) out << n.number[i];
out << '\n';
return out;
}
};
int main()
{
cin.ignore();
int n;
while(cin>>n)
{
Number number(n);
number.reverseAndAdd();
while(!number.isPalindrome()) number.reverseAndAdd();
cout << number;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgTnVtYmVyCnsKcHJpdmF0ZToKCWludCBudW1iZXJbMTAwXTsKCWludCBzaXplOwoJaW50IGl0ZXJhdGlvbnM7CnB1YmxpYzoKCU51bWJlcihpbnQgbikKCXsKCQlzaXplID0gMDsKCQlpdGVyYXRpb25zID0gMDsKCQl3aGlsZShuICE9IDApCgkJewoJCQludW1iZXJbc2l6ZSsrXSA9IG4gJSAxMDsKCQkJbiAvPSAxMDsKCQl9Cgl9CgkKCXZvaWQgcmV2ZXJzZUFuZEFkZCgpCgl7CgkJaW50IHNvdXJjZVtzaXplXTsKCQlmb3IoaW50IGk9MDtpPHNpemU7aSsrKSBzb3VyY2VbaV0gPSBudW1iZXJbaV07CgkJZm9yKGludCBpPTA7aTxzaXplO2krKykKCQl7CgkJCW51bWJlcltpXSArPSAgc291cmNlW3NpemUtaS0xXTsKCQkJaWYobnVtYmVyW2ldID4gOSkKCQkJewoJCQkJaWYoaSA9PSBzaXplLTEpIAoJCQkJewoJCQkJCW51bWJlcltzaXplXSA9IDA7CgkJCQkJc2l6ZSsrOwoJCQkJfQoJCQkJbnVtYmVyW2ldIC09IDEwOwoJCQkJbnVtYmVyW2krMV0gKz0gMTsKCQkJfSAKCQl9CgkJaXRlcmF0aW9ucysrOwoJCXJldHVybjsKCX0KCWJvb2wgaXNQYWxpbmRyb21lKCljb25zdAoJewoJCWJvb2wgZmxhZyA9IHRydWU7CgkJZm9yKGludCBpPTA7aTxzaXplLzI7aSsrKQoJCXsKCQkJaWYobnVtYmVyW2ldICE9IG51bWJlcltzaXplLWktMV0pCgkJCXsKCQkJCWZsYWcgPSBmYWxzZTsKCQkJCWJyZWFrOwoJCQl9CgkJfQoJCXJldHVybiBmbGFnOwoJfQoJZnJpZW5kIG9zdHJlYW0mIG9wZXJhdG9yPDwgKG9zdHJlYW0mIG91dCwgY29uc3QgTnVtYmVyICZuKQoJewoJCW91dCA8PCBuLml0ZXJhdGlvbnMgPDwgJyAnOwoJCWZvcihpbnQgaT1uLnNpemU7aT49MDtpLS0pIG91dCA8PCBuLm51bWJlcltpXTsKCQlvdXQgPDwgJ1xuJzsKCQlyZXR1cm4gb3V0OwoJfQp9OwoKaW50IG1haW4oKQp7CgljaW4uaWdub3JlKCk7CglpbnQgbjsKCXdoaWxlKGNpbj4+bikKCXsKCQlOdW1iZXIgbnVtYmVyKG4pOwoJCW51bWJlci5yZXZlcnNlQW5kQWRkKCk7CgkJd2hpbGUoIW51bWJlci5pc1BhbGluZHJvbWUoKSkgbnVtYmVyLnJldmVyc2VBbmRBZGQoKTsKCQljb3V0IDw8IG51bWJlcjsKCX0KCXJldHVybiAwOwp9