#include<bits/stdc++.h>
using namespace std;
int ans1[200050],a[200050];
string gc(string a_s,int b)
{
memset(ans1,0,sizeof(ans1));
memset(a,0,sizeof(a));
int i,j,len_a,carry=0;
len_a=a_s.length();
for(i=0;i<len_a;i++)
{
a[i]=a_s[len_a-1-i]-'0';
}
for(i=0;i<len_a||carry!=0;i++)
{
ans1[i]=a[i]*b+carry;
carry=ans1[i]/10;
ans1[i]%=10;
}
int len=i;
while(ans1[len]==0&&len>0)
{
len--;
}
string an;
for(i=len;i>=0;i--)
{
an+=to_string(ans1[i]);
}
return an;
}
int main()
{
int n,r;
cin>>n>>r;
r%=26;
for(int i=1;i<=n;i++)
{
string s,ans="1";
cin>>s;
for(int j=0;j<s.size();j++)
{
int k=int(s[j])+r;
if(k>int('Z'))
{
s[j]=char(k-'Z'+'A'-1);
}
else
{
s[j]=char(k);
}
ans=gc(ans,int(s[j]));
}
cout<<s<<endl<<ans<<endl;
}
return 0;
}