#include<stdio.h>
#include<string.h>
int change(char c){
if(c>='0'&&c<='9'){
return c-'0';
}
else{
return c-'a'+10;
}
}
char Change(int d){
if(d>=0&&d<=9){
return '0'+d;
}
else{
return 'a'+d-10;
}
}
char str32b[32]="";
void erjinzhi(int n){
for(int j=0;j<32;j++){
str32b[j]='0';
}
int a=1;
while(n!=0){
str32b[32-a]=n%2==1?'1':'0';
n=n/2;
a++;
}
}
int main(void){
int t;
scanf("%d",&t);
while(t--){
char str[8];
getchar();
scanf("%s",str);
int m,k;
scanf("%d",&m);
scanf("%d",&k);
char str32a[32]="";
int record=0;
for(int i=0;i<8;i++){
erjinzhi(change(str[i]));
for(int j=28;j<32;j++){
str32a[record++]=str32b[j];
}
}
erjinzhi(k);
for(int i=0;i<m;i++){
str32a[i]=str32b[32-m+i];
}
for(int i=0;i<32;i=i+4){
int sum=0;
for(int j=0;j<4;j++){
sum=sum*2;
sum=sum+str32a[i+j]-'0';
}
printf("%c",Change(sum));
}
printf("\n");
}
return 0;
}