#include<iostream>
#include<vector>
#include<string>
#include<string.h>
using namespace std;
class CA
{
public:
void run();
bool palindromic();
private:
vector<int> zheng,fan,ans;
int k;
};
void CA::run()
{
string st;
cin>>st;
int i,step,sum;
for(i=st.size()-1;i>=0;i--)
{
ans.push_back(st[i]-'0');
}
cin>>k;
if(palindromic())
{
for(i=ans.size()-1;i>=0;i--)
{
printf("%d",ans[i]);
}
printf("\n");
printf("0");
return;
}
for(step=0;step<k;step++)
{
if(palindromic())
{
step++;
break;
}
int flag=0;
zheng.clear();
for(i=0;i<=ans.size()-1;i++)
{
zheng.push_back(ans[i]);
}
fan.clear();
for(i=ans.size()-1;i>=0;i--)
{
fan.push_back(ans[i]);
}
/*for(i=zheng.size()-1;i>=0;i--)
{
printf("%d",fan[i]);
}
printf("\n");*/
ans.clear();
for(i=0;i<=zheng.size()-1;i++)
{
sum=(zheng[i]+fan[i]+flag)%10;
flag=(zheng[i]+fan[i]+flag)/10;
ans.push_back(sum);
}
if(flag>0)
ans.push_back(flag);
if(palindromic())
{
step++;
break;
}
/* for(i=zheng.size()-1;i>=0;i--)
{
printf("%d",ans[i]);
}
printf("\n");*/
}
for(i=ans.size()-1;i>=0;i--)
{
printf("%d",ans[i]);
}
printf("\n");
printf("%d",step);
}
bool CA::palindromic()
{
bool flag=true;
int i;
for(i=0;i<ans.size()-1;i++)
{
if(ans[i]!=ans[ans.size()-1-i])
{
flag=false;
break;
}
}
return flag;
}
int main()
{
CA *a=new CA;
a->run();
return 0;
}