#include <iostream>
#include <iomanip>
#include <climits>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <cmath>
using namespace std;
long long mod = 1e9 + 7;
#define fast_io() ios::sync_with_stdio(false); cin.tie(nullptr);
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+CiNpbmNsdWRlIDxjbWF0aD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxvbmcgbG9uZyBtb2QgPSAxZTkgKyA3OwoKI2RlZmluZSBmYXN0X2lvKCkgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKG51bGxwdHIpOwoKY29uc3QgaW50IE4gPSA5OwppbnQgYm9hcmRbMTBdWzEwXTsKYm9vbCBjaGVjayhpbnQgcm93LCBpbnQgY29sLCBpbnQgeCl7CiAgICAvLyBraeG7g20gdHJhIGjDoG5nCiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKyl7CiAgICAgICAgaWYgKGJvYXJkW3Jvd11baV0gPT0geCl7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9CiAgICAvLyBraeG7g20gdHJhIGPhu5l0CiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKyl7CiAgICAgICAgaWYgKGJvYXJkW2ldW2NvbF0gPT0geCl7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9CiAgICAvLyBraeG7g20gdHJhIHRyb25nIMO0IDN4MwogICAgaW50IHN0YXJ0Um93ID0gcm93IC0gcm93ICUgMywgc3RhcnRDb2wgPSBjb2wgLSBjb2wgJSAzOwogICAgZm9yIChpbnQgaSA9IHN0YXJ0Um93OyBpIDwgc3RhcnRSb3cgKyAzOyBpKyspewogICAgICAgIGZvciAoaW50IGogPSBzdGFydENvbDsgaiA8IHN0YXJ0Q29sICsgMzsgaisrKXsKICAgICAgICAgICAgaWYgKGJvYXJkW2ldW2pdID09IHgpewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHRydWU7Cn0KCmJvb2wgQmFja1RyYWNrKGludCByb3csIGludCBjb2wpewogICAgaWYgKHJvdyA9PSBOIC0gMSAmJiBjb2wgPT0gTil7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICBpZiAoY29sID09IE4pewogICAgICAgIHJvdysrOwogICAgICAgIGNvbCA9IDA7CiAgICB9CiAgICBpZiAoYm9hcmRbcm93XVtjb2xdICE9IDApewogICAgICAgIHJldHVybiBCYWNrVHJhY2socm93LCBjb2wgKyAxKTsKICAgIH0KICAgIGVsc2V7CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gTjsgaSsrKXsKICAgICAgICAgICAgaWYgKGNoZWNrKHJvdywgY29sLCBpKSl7CiAgICAgICAgICAgICAgICBib2FyZFtyb3ddW2NvbF0gPSBpOwogICAgICAgICAgICAgICAgaWYgKEJhY2tUcmFjayhyb3csIGNvbCArIDEpKXsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBib2FyZFtyb3ddW2NvbF0gPSAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9Cn0KaW50IG1haW4oKXsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKXsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE47IGorKyl7CiAgICAgICAgICAgIGNpbiA+PiBib2FyZFtpXVtqXTsKICAgICAgICB9CiAgICB9CiAgICBpZiAoQmFja1RyYWNrKDAsIDApKXsKICAgICAgICBjb3V0IDw8ICIyOHRlY2giIDw8IGVuZGw7CiAgICB9CiAgICBlbHNlIGNvdXQgPDwgIjI5dGVjaCIgPDwgZW5kbDsKICAgIHJldHVybiAwOwp9