#include <stdio.h>
#include <stdlib.h>
#define max 100
char in[max];//存储进栈序列
char out[max];//存储出栈序列
char stack[max];//栈
int flag[max];//标记 0 表示出栈 1 表示入栈
int main()
{
int i,j,n,top,k;
while (scanf("%d",&n)!=EOF)
{
scanf("%s%s",in,out);//输入两个字符串
top=0;
i=j=k=0;
while (i<n&&j<=n)
{
if(top>0&&stack[top-1]==out[i])//和出栈序列的第一个元素相同则出栈
{
flag[k++]=0;
i++;
top--;
}
else//不同则入栈
{
stack[top++]=in[j];
j++;
flag[k++]=1;
}
}
//printf(">>%d %d %d\n",k,i,j);
if (k==2*n)
{
printf("Yes.\n");
for (i=0;i<2*n;++i)
{
if(flag[i]== 0)
printf("out\n");
else
printf("in\n");
}
}
else
printf("No.\n");
printf("FINISH\n");
}
return 0;
}
#include <stdlib.h>
#define max 100
char in[max];//存储进栈序列
char out[max];//存储出栈序列
char stack[max];//栈
int flag[max];//标记 0 表示出栈 1 表示入栈
int main()
{
int i,j,n,top,k;
while (scanf("%d",&n)!=EOF)
{
scanf("%s%s",in,out);//输入两个字符串
top=0;
i=j=k=0;
while (i<n&&j<=n)
{
if(top>0&&stack[top-1]==out[i])//和出栈序列的第一个元素相同则出栈
{
flag[k++]=0;
i++;
top--;
}
else//不同则入栈
{
stack[top++]=in[j];
j++;
flag[k++]=1;
}
}
//printf(">>%d %d %d\n",k,i,j);
if (k==2*n)
{
printf("Yes.\n");
for (i=0;i<2*n;++i)
{
if(flag[i]== 0)
printf("out\n");
else
printf("in\n");
}
}
else
printf("No.\n");
printf("FINISH\n");
}
return 0;
}