WSCIPHER
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int k1,k2,k3;
char a[200],k1a[200],k2a[200],k3a[200],temp1[200],temp2[200],temp3[200];
int l,m,n,p,q,r,t,s;
while(true)
{
cin>>k1>>k2>>k3;
if((k1==0)&&(k2==0)&&(k3==0))break;
cin>>a;
p=strlen(a);
l=0,m=0,n=0,t=0;
for(int x=0;x<p;x++)
if((a[x]>96)&&(a[x]<106))
k1a[l++]=a[x];
else if((a[x]>105)&&(a[x]<115))
k2a[m++]=a[x];
else
k3a[n++]=a[x];
k1a[l]='\0';
k2a[m]='\0';
k3a[n]='\0';
p=strlen(k1a);
if(p>0)
q=k1%p;else q=0;
for(int ln=0;ln<p;ln++)
temp1[(ln+q)%(strlen(k1a))]=k1a[ln];
temp1[p]='\0';
p=strlen(k2a);
if(p>0)
r=k2%p;else r=0;
for(int ln=0;ln<p;ln++)
temp2[(ln+r)%p]=k2a[ln];
temp2[p]='\0';
p=strlen(k3a);
if(p>0)
s=k3%p;else s=0;
for(int ln=0;ln<p;ln++)
temp3[(ln+s)%p]=k3a[ln];
temp3[p]='\0';
l=0,m=0,n=0;
p=strlen(a);
for(int x=0;x<p;x++)
if((a[x]>96)&&(a[x]<106))
a[x]=temp1[l++];
else if((a[x]>105)&&(a[x]<115))
a[x]=temp2[m++];
else
a[x]=temp3[n++];
cout<<a<<endl;
}
return 0;
}
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int k1,k2,k3;
char a[200],k1a[200],k2a[200],k3a[200],temp1[200],temp2[200],temp3[200];
int l,m,n,p,q,r,t,s;
while(true)
{
cin>>k1>>k2>>k3;
if((k1==0)&&(k2==0)&&(k3==0))break;
cin>>a;
p=strlen(a);
l=0,m=0,n=0,t=0;
for(int x=0;x<p;x++)
if((a[x]>96)&&(a[x]<106))
k1a[l++]=a[x];
else if((a[x]>105)&&(a[x]<115))
k2a[m++]=a[x];
else
k3a[n++]=a[x];
k1a[l]='\0';
k2a[m]='\0';
k3a[n]='\0';
p=strlen(k1a);
if(p>0)
q=k1%p;else q=0;
for(int ln=0;ln<p;ln++)
temp1[(ln+q)%(strlen(k1a))]=k1a[ln];
temp1[p]='\0';
p=strlen(k2a);
if(p>0)
r=k2%p;else r=0;
for(int ln=0;ln<p;ln++)
temp2[(ln+r)%p]=k2a[ln];
temp2[p]='\0';
p=strlen(k3a);
if(p>0)
s=k3%p;else s=0;
for(int ln=0;ln<p;ln++)
temp3[(ln+s)%p]=k3a[ln];
temp3[p]='\0';
l=0,m=0,n=0;
p=strlen(a);
for(int x=0;x<p;x++)
if((a[x]>96)&&(a[x]<106))
a[x]=temp1[l++];
else if((a[x]>105)&&(a[x]<115))
a[x]=temp2[m++];
else
a[x]=temp3[n++];
cout<<a<<endl;
}
return 0;
}