#include <iostream>
#include <iomanip>
#include <climits>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <cmath>
using namespace std;
long long mod = 1e9 + 7;
const int N = 9;
int board[10][10];
bool check(int row, int col, int x){
// kiểm tra hàng
for (int i = 0; i < N; i++){
if (board[row][i] == x){
return false;
}
}
// kiểm tra cột
for (int i = 0; i < N; i++){
if (board[i][col] == x){
return false;
}
}
// kiểm tra trong ô 3x3
int startRow = row - row % 3, startCol = col - col % 3;
for (int i = startRow; i < startRow + 3; i++){
for (int j = startCol; j < startCol + 3; j++){
if (board[i][j] == x){
return false;
}
}
}
return true;
}
bool BackTrack(int row, int col){
if (row == N - 1 && col == N){
return true;
}
if (col == N){
row++;
col = 0;
}
if (board[row][col] != 0){
return BackTrack(row, col + 1);
}
else{
for (int i = 1; i <= N; i++){
if (check(row, col, i)){
board[row][col] = i;
if (BackTrack(row, col + 1)){
return true;
}
}
board[row][col] = 0;
}
return false;
}
}
int main(){
for (int i = 0; i < N; i++){
for (int j = 0; j < N; j++){
cin >> board[i][j];
}
}
if (BackTrack(0, 0)){
cout << "28tech" << endl;
}
else cout << "29tech" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGNsaW1pdHM+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxjbWF0aD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxvbmcgbG9uZyBtb2QgPSAxZTkgKyA3OwoKCmNvbnN0IGludCBOID0gOTsKaW50IGJvYXJkWzEwXVsxMF07CmJvb2wgY2hlY2soaW50IHJvdywgaW50IGNvbCwgaW50IHgpewogICAgLy8ga2nhu4NtIHRyYSBow6BuZwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspewogICAgICAgIGlmIChib2FyZFtyb3ddW2ldID09IHgpewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgfQogICAgLy8ga2nhu4NtIHRyYSBj4buZdAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspewogICAgICAgIGlmIChib2FyZFtpXVtjb2xdID09IHgpewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgfQogICAgLy8ga2nhu4NtIHRyYSB0cm9uZyDDtCAzeDMKICAgIGludCBzdGFydFJvdyA9IHJvdyAtIHJvdyAlIDMsIHN0YXJ0Q29sID0gY29sIC0gY29sICUgMzsKICAgIGZvciAoaW50IGkgPSBzdGFydFJvdzsgaSA8IHN0YXJ0Um93ICsgMzsgaSsrKXsKICAgICAgICBmb3IgKGludCBqID0gc3RhcnRDb2w7IGogPCBzdGFydENvbCArIDM7IGorKyl7CiAgICAgICAgICAgIGlmIChib2FyZFtpXVtqXSA9PSB4KXsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiB0cnVlOwp9Cgpib29sIEJhY2tUcmFjayhpbnQgcm93LCBpbnQgY29sKXsKICAgIGlmIChyb3cgPT0gTiAtIDEgJiYgY29sID09IE4pewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgaWYgKGNvbCA9PSBOKXsKICAgICAgICByb3crKzsKICAgICAgICBjb2wgPSAwOwogICAgfQogICAgaWYgKGJvYXJkW3Jvd11bY29sXSAhPSAwKXsKICAgICAgICByZXR1cm4gQmFja1RyYWNrKHJvdywgY29sICsgMSk7CiAgICB9CiAgICBlbHNlewogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IE47IGkrKyl7CiAgICAgICAgICAgIGlmIChjaGVjayhyb3csIGNvbCwgaSkpewogICAgICAgICAgICAgICAgYm9hcmRbcm93XVtjb2xdID0gaTsKICAgICAgICAgICAgICAgIGlmIChCYWNrVHJhY2socm93LCBjb2wgKyAxKSl7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYm9hcmRbcm93XVtjb2xdID0gMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQp9CmludCBtYWluKCl7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKyl7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBOOyBqKyspewogICAgICAgICAgICBjaW4gPj4gYm9hcmRbaV1bal07CiAgICAgICAgfQogICAgfQogICAgaWYgKEJhY2tUcmFjaygwLCAwKSl7CiAgICAgICAgY291dCA8PCAiMjh0ZWNoIiA8PCBlbmRsOwogICAgfQogICAgZWxzZSBjb3V0IDw8ICIyOXRlY2giIDw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQ==