#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<stdio.h>
#include<queue>
#include<iomanip>
#include<string>
#include<cstdio>
using namespace std;
int map[4][4]/*1:X 2:O*/,x,o,much1,much2,how1,how2;
int main(){
for(int i=1;i<=3;i++){
for(int j=1;j<=3;j++){
char a;
cin>>a;
if(a=='X'){
map[i][j]=1;
x++;
}
if(a=='0'){
map[i][j]=2;
o++;
}
}
}
if(o>x||x-1>o){
cout<<"illegal";
}
else{
for(int i=1;i<=3;i++){//横向搜索
much1=0,much2=0;//初始化
for(int j=1;j<=3;j++){
if(map[i][j]==1)much1++;
if(map[i][j]==2)much2++;
}
if(much1==3)how1++;
if(much2==3)how2++;
}
for(int i=1;i<=3;i++){//纵向搜索
much1=0,much2=0;//初始化
for(int j=1;j<=3;j++){
if(map[j][i]==1)much1++;
if(map[j][i]==2)much2++;
}
if(much1==3)how1++;
if(much2==3)how2++;
}
much1=0,much2=0;//初始化
for(int i=1;i<=3;i++){//对角线1
if(map[i][i]==1)much1++;
if(map[i][i]==2)much2++;
}
if(much1==3)how1++;
if(much2==3)how2++;
much1=0,much2=0;//初始化
for(int i=3;i>=1;i--){//对角线2
if(map[i][i]==1)much1++;
if(map[i][i]==2)much2++;
}
if(much1==3)how1++;
if(much2==3)how2++;
if(how1>0&&how2>0){
cout<<"illegal";
}
else if(how1>1||how2>1){
cout<<"illegal";
}
else if(how1>0){
cout<<"the first player won";
}
else if(how2>0){
cout<<"the second player won";
}
else if(o+x==3*3){
cout<<"draw";
}
else if(x==o){
cout<<"first";
}
else{
cout<<"second";
}
cout<<endl<<how1<<" "<<how2;
}
/*for(int i=1;i<=3;i++){
cout<<endl;
for(int j=1;j<=3;j++){
cout<<map[i][j];
}
}*/
return 0;
}
看了N遍发现好似没问题