#include<stdio.h>
#include<string.h>
int main ()
{
intn,i,f[100000];
chara[2][100000];
while(scanf("%d",&n)==1)
{
getchar ();
for (i=0;i<n;i++)
scanf ("%c",&a[0][i]);
a[0][i]='\0';
getchar ();
for (i=0;i<n;i++)
scanf ("%c",&a[1][i]);
int flog=1,right,k,len=strlen(a[0]);
for (i=len-1;i>=0;i--)
if (a[0][i]==a[1][0])
{
k=i;break;
}
int t=k,m=1,p=1;
memset(f,1,sizeof(f)); //判断
for (i=0,right=k;i<len;i++)
{
p=1;
if(m==0&&a[0][right]==a[1][i]&&f[right])
{m=1;f[right]=0;}
if (m==0)
k=right;
else
if (right==len-1&&f[right])
{
if (a[0][k]!=a[1][i]&&f[k])
{
flog=0;break;
}
k--;
}
else
{
if (a[0][right]==a[1][i]&&f[right])
{
f[right]=0;
right++;
if (right==len-1)
m=0;
}
else if(a[0][k-1]==a[1][i]&&f[k-1])
{f[k-1]=0;k--;}
else if(a[0][right+1]==a[1][i]&&f[right+1])
{
for (right=right+1;right<len;right++)
if (a[0][right]==a[1][i]&&f[right])
{
f[right]=0;
if (right!=len-1)
right++;
break;
}
else
k=right;
}
else if(f[right+1])
{
flog=0;break;
}
}
}
//输出
if (flog==0)
{
printf ("No.\nFINISH\n");
}
else
{
memset(f,1,sizeof(f));
printf ("Yes.\n");
int flag=t,e=1,q=1,j,p=1;
for (i=0;i<=t-1;i++)
{
printf ("in\n");//f[i]=0;
}
flog=0;
for (i=0,right=t;i<len;i+=(p==1)?1:0)
{
p=1;
if(right==len)
{right--;e=0;}
if (right==len-1&&a[0][right]==a[1][i])//只执行一次
{
if (flog==0&&q&&e)
printf ("in\n");
flog=1;q=0;
printf ("out\n");
}
else
{
if (a[0][right]==a[1][i]&&f[right])
{
if(flag==t)
t--;
printf ("in\n");
printf ("out\n");
f[right]=0;right++;
}
else if(a[0][t]==a[1][i])
{
f[t]=0;t--;
printf ("out\n");
}
else if(f[right]&&e)
for (right=right;right<len;right++)
{
e=0;
if(right!=len-1||q)
printf ("in\n");
if (a[0][right]==a[1][i]&&f[right])
{
f[right]=0;p=0;i++;//1
}
else if(a[0][t]==a[1][i])
{
f[t]=0;t--;p=0;i++;//1
printf ("out\n");
if(i==len)break;
}
else
t=right;
if (f[right]==0||f[t+1]==0)
printf ("out\n");
}
else for(j=t;j>=0;j--)
if(f[j])
{printf ("out\n");f[j]=0;}
}
}
printf ("FINISH\n");
}
}
return 0;
}