#include<stdio.h>
#include<iostream>
#include<stack>
#include<string.h>
using namespace std;
stack<int>s;
char str[100];
char str1[30];
char str2[30];
int num1=0,num2=0;
bool boo[30];
char tmp;
int q=0;
int y;
void digui(int n);
void f();
void output();
int is();
int main()
{
while(scanf("%s",&str1) != EOF)
{
scanf("%s",&str2);
num1 = strlen(str1);
num2 = strlen(str2);
while (!s.empty())
{
s.pop();
}
printf("[\n");
digui(0);
printf("]\n");
}
return 0;
}
void digui(int n)
{
int i;
if(n == 2*num1)
{
if(is() == 1)
{
f();
}
}
else
{
for(i=1;i >= 0;i--)
{
boo[n]=i;
digui(n+1);
}
}
}
int is()
{
int i;
int number1=0,number2=0;
for(i=0;i < 2*num1;i++)
{
if(boo[i] == 1)
{
number1=number1+1;
}
else
{
number2=number2+1;
}
}
if(number1 == number2)
{
return 1;
}
else
{
return 0;
}
}
void f()
{
int i,j;
int flag=1;
int a=0,b=0;
for(i=0;i < 2*num1;i++)
{
if(boo[i] == 1)
{
s.push(str1[a]);
a=a+1;
}
else
{
if(a>b)
{
tmp=s.top();
if(int(tmp) != int(str2[b]) )
{
flag=0;
}
b=b+1;
s.pop();
}
else
{
flag=0;
break;
}
}
}
if(flag == 1)
{
output();
}
}
void output()
{
int i,j;
for(i=0;i < 2*num1-1 ;i++)
{
if(boo[i] == 1)
{
printf("i ");
}
else
{
printf("o ");
}
}
if(boo[2*num1-1] == 1)
{
printf("i");
}
else
{
printf("o");
}
printf("\n");
}