#include<unordered_set>
#include<iostream>
using namespace std;
int main(){
//一个典型的以空间换时间的写法
vector<vector<char> > grid(9,vector<char>(9,'0'));
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
cin>>grid[i][j];
}
}
//定义三个新的网格用来以空间换时间。
vector<vector<int> > row(9,vector<int>(9,0));
vector<vector<int> > col(9,vector<int>(9,0));
vector<vector<int> > block(9,vector<int>(9,0));
int temp=0;
bool flag=true;
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
if(grid[i][j]!='.'){
temp=grid[i][j]-'0'-1;//计算这个值对应的十进制。
tmp=i/3*3+j/3;
if(row[i][temp]||col[j][temp]||block[tmp][temp]){
flag=false;
break;
}
row[i][temp]=col[j][temp]=block[tmp][temp]=1;
}
}
if(!flag)break;
}
if(!flag)
{
cout<<"false"<<endl;
}
else
{
cout<<"true"<<endl;
}
return 0;
}