#include <iostream>
#include <string>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;
string s1,s2;
stack<char> cs;
vector<char> io; //存放结果(i、o)
int l;
void prints()
{
for (int i=0;i<io.size();i++)
cout<<io[i]<<" ";
cout<<endl;
}
void dfs(int i,int o)
{
if (i==l&&o==l)
prints();
if (i<l)
{
//压栈
cs.push(s1[i]);
io.push_back('i');
dfs(i+1,o);
//取消压栈
cs.pop();
io.pop_back();
}
if (o<i&&o<l&&cs.top()==s2[o])
{
//弹栈
char t=cs.top();
cs.pop();
io.push_back('o');
dfs(i,o+1);
//取消弹栈
cs.push(t);
io.pop_back();
}
}
int main()
{
while (cin>>s1>>s2)
{
l=s1.length();
string t1=s1,t2=s2;
sort(t1.begin(),t1.end()); //用于将字符串按字符从小到大的顺序排序;
sort(t2.begin(),t2.end());
cout<<"[/n";
if (t1==t2)
dfs(0,0); //第一个表示源字符串的当前指针、后一个表示乱序后字符串的开始指针;
cout<<"]/n";
}
return 0;
}