#include<iostream>
using namespace std;
string a,b;
void Anagrams(int iPos,int iDeep,string operate,string pop,string push)
{
int i;
for(i=0;i<=iPos-iDeep;i++)
{
operate+="i ";
}
operate +="o ";
iDeep=iPos;//记录本次匹配成功的操作位置
push+=pop[iPos];
pop.erase(iPos,1);
if(pop.size()==0)//如果栈为空则表示操作完成,pop中已经没有元素了
{
cout<<operate<<endl;
}
else//否则判断操作位置的上方以及下方是否可以操作匹配
{
for(i=pop.size()-1;i>=iPos;i--)//从pop的最上面的元素开始遍历判断和上次操作的位置的iPos比较看是否是在iPos的更上面
{
if(pop[i]==b[push.size()])
{
Anagrams(i,iDeep,operate,pop,push);
}
}
if(iDeep>0)//发现pop中iPos下面的位置的元素个数不为0时
{
if(pop[iPos-1] == b[push.size()])//使用递归
{
Anagrams(iPos-1,iDeep,operate,pop,push);
}
}
}
}
int main()
{
int i;
while(cin>>a>>b)
{
cout<<"["<<endl;
for(i=a.size()-1;i>=0;i--)
{
if(a[i]==b[0])
{
Anagrams(i,0,"",a,"");//string可以传空的字符串
}
}
cout<<"]"<<endl;
}
return 0;
}