/*
http://blog.csdn.net/liuke19950717
*/
#include<cstdio>
#include<cstring>
using namespace std;
char m[5][5];
int judge(int x)
{
if(m[0][0]==x&&m[0][0]==m[1][1]&&m[1][1]==m[2][2])
{
return 1;
}
for(int i=0;i<3;++i)
{
if(m[0][i]==x&&m[0][i]==m[1][i]&&m[1][i]==m[2][i])
{
return 1;
}
if(m[i][0]==x&&m[i][0]==m[i][1]&&m[i][1]==m[i][2])
{
return 1;
}
}
if(m[0][2]==x&&m[0][2]==m[1][1]&&m[1][1]==m[2][0])
{
return 1;
}
return 0;
}
void slove()
{
int a=0,b=0;
for(int i=0;i<3;++i)
{
for(int j=0;j<3;++j)
{
if(m[i][j]=='X')
{
++a;
}
if(m[i][j]=='0')
{
++b;
}
}
}
if(a>b+1||b>a)//最多多出一个
{
printf("illegal\n");
return;
}
int ka=judge('X'),kb=judge('0');//是否完成
if(a==b+1&&ka&&!kb)//先下的完成,后下的没完成
{
printf("the first player won\n");
return;
}
if(a==b&&!ka&&kb)//后下的完成,先下的未完成
{
printf("the second player won\n");
return;
}
if(!ka&&!kb)//都没完成,继续走
{
if(a+b==9)
{
printf("draw\n");
return;
}
if(a==b)
{
printf("first\n");
return;
}
if(a==b+1)
{
printf("second\n");
return;
}
}
printf("illegal\n");//其他情况非法
}
int main()
{
scanf("%s%s%s",m[0],m[1],m[2]);
slove();
return 0;
}