#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

#define rep_to(a,i,n) for(i=a;i<n;i++)
#define rep(i,n) for(i=0;i<n;i++)
#define rep_r(i,n) for(i=n-1;i>=0;i--)
#define debug_i(x) printf("x:%d\n",x)
#define debug_s(str) printf("str:%s\n",str)
#define debug_c(c) printf("c:%c\n",c) 

int main()
{
	int i,j,k,l,z;
	int n=0;
	char str[257]={};
	char str1[257][257]={};
	char str2[257][257]={};
	char *p;
	int ans,count=1;
	int flag=0;
	int len=0;
	scanf("%d\n",&n);

	rep(z,n)
	{
		fgets(str,sizeof(str),stdin);
		str[strlen(str)-1]='\0';
		i=0;
		j=0;
		k=0;
		rep(i,strlen(str))
		{
			if(str[i]==' ')
			{
				j++;
				k=0;
				i++;
				count++;
			}
			str1[j][k]=str[i];
			k++;
		}
		rep(k,count)
		{
			if(strstr(str1[k],"that")!=NULL)flag=2;
			else if(strstr(str1[k],"this")!=NULL)flag=2;
		}
		if(flag!=2)
		{
			while(1)
			{
				rep_to(1,j,1000)
				{
					rep(k,count)
					{
						if(strstr(str2[k],"that")!=NULL)flag=1;
						else if(strstr(str2[k],"this")!=NULL)flag=1;
					}
					if(flag==1)break;
					rep(k,count)
					{
						rep(l,strlen(str1[k]))
						{
							str2[k][l]=(i*(str1[k][l]-97)+j)%26+97;
						}
					}
				}
				if(flag==1)break;
				i++;
			}
			rep(i,count)
			{
				rep(j,strlen(str2[i]))
				{
					if(len>=strlen(str))break;
					else 
					{
						printf("%c",str2[i][j]);
						len++;
					}
				}
				if(len>=strlen(str))break;
				else printf(" ");
				len++;
			}
			printf("\n");
		}
		else
		{
			rep(i,count)
			{
				rep(j,strlen(str1[i]))
				{
					if(len>=strlen(str))break;
					else 
					{
						printf("%c",str1[i][j]);
						len++;
					}
				}
				if(len>=strlen(str))break;
				else printf(" ");
				len++;
			}
			printf("\n");
		}
		
		flag=0;
		rep(i,strlen(str))str[i]='\0';
		rep(i,count)rep(j,strlen(str2[i]))str2[i][j]='\0';
		rep(i,count)rep(j,strlen(str1[i]))str1[i][j]='\0';
		count=1;
		i=0;
		len=0;
	}
	return 0;
}