高精加
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int check(vector<int> &a){
int l = 0, r = a.size() - 1;
while(l < r){
if(a[l] != a[r]) return 0;
++l, -- r;
}
return 1;
}
void add(vector<int> &a, vector<int> &b){
vector<int> res;
int t = 0;
for(int i = 0; i < a.size() || i < b.size(); i ++){
if(i < a.size()) t += a[i];
if(i < b.size()) t += b[i];
res.push_back(t % 10);
t /= 10;
}
if(t) res.push_back(1);
a = res;
}
int main(){
string s;
int k;
cin >> s >> k;
vector<int> a;
for(int i = s.size() - 1; i >= 0; i --) a.push_back(s[i] - '0');
int cnt = 0;
for(int i = 0; i < k && !check(a); i ++, cnt ++){
auto b = a;
reverse(b.begin(), b.end());
add(a, b);
}
for(int i = a.size() - 1; i >= 0; i --) cout << a[i];
puts("");
cout << cnt << endl;
return 0;
}