#include<iostream>
#include<string>
using namespace std;
int m[3][3];
int win,lose;

void slove_yoko(){
	if(m[0][0]==1 && m[0][1]==1 && m[0][2]==1){ win=1; lose=0;}
	if(m[1][0]==1 && m[1][1]==1 && m[1][2]==1){ win=1; lose=0;}
	if(m[2][0]==1 && m[2][1]==1 && m[2][2]==1){ win=1; lose=0;}

	if(m[0][0]==0 && m[0][1]==0 && m[0][2]==0){ win=0; lose=1;}
	if(m[1][0]==0 && m[1][1]==0 && m[1][2]==0){ win=0; lose=1;}
	if(m[2][0]==0 && m[2][1]==0 && m[2][2]==0){ win=0; lose=1;}
}

void slove_tate(){
	if(m[0][0]==1 && m[1][0]==1 && m[2][0]==1){ win=1; lose=0;}
	if(m[0][1]==1 && m[1][1]==1 && m[2][1]==1){ win=1; lose=0;}
	if(m[0][2]==1 && m[1][2]==1 && m[2][2]==1){ win=1; lose=0;}

	if(m[0][0]==0 && m[1][0]==0 && m[2][0]==0){ win=0; lose=1;}
	if(m[0][1]==0 && m[1][1]==0 && m[2][1]==0){ win=0; lose=1;}
	if(m[0][2]==0 && m[1][2]==0 && m[2][2]==0){ win=0; lose=1;}
}

void slove_naname(){
	if(m[0][0]==1 && m[1][1]==1 && m[2][2]==1){ win=1; lose=0;}
	if(m[0][0]==0 && m[1][1]==0 && m[2][2]==0){ win=0; lose=1;}
	
	if(m[0][2]==1 && m[1][1]==1 && m[2][0]==1){ win=1; lose=0;}
	if(m[0][2]==0 && m[1][1]==0 && m[2][0]==0){ win=0; lose=1;}
}

void winer(){
	if(win==1) cout << 'o' << endl;
	if(win==0) cout << 'x' << endl;
	if(win==9 && lose==9) cout << 'd' << endl;
}

int main(){
	string s;
	while(cin >> s){
		int count=0;
		win=9; lose=9;
		for(int i=0; i<3; i++){
			for(int j=0; j<3; j++){
				if(s[count] == 'o') m[i][j] = 1;
				if(s[count] == 'x') m[i][j] = 0;
				if(s[count] == 's') m[i][j] = 9;
				count++;
			}
		}
		slove_yoko();
		slove_tate();
		slove_naname();
		winer();
	}
	return 0;
}