#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;
bool check(int board[N][N], int row, int col, int x){
// kiểm tra hàng xem coi số đã xuất hiện chưa
for (int i = 0; i < N; i++){
if (board[row][i] == x){
return false;
}
}
// kiểm tra cột xem coi số đã xuất hiện chưa
for (int i = 0; i < N; i++){
if (board[i][col] == x){
return false;
}
}
// kiểm tra trong ô 3x3 đang xét số đã xuất hiện chưa
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 board[N][N], 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(board, row, col + 1);
}
for (int i = 1; i <= N; i++){
if (check(board, row, col, i)){
board[row][col] = i;
if (BackTrack(board, row, col + 1)){
return true;
}
}
board[row][col] = 0;
}
return false;
}
int main(){
int board[N][N];
for (int i = 0; i < N; i++){
for (int j = 0; j < N; j++){
cin >> board[i][j];
}
}
if (BackTrack(board, 0, 0)){
cout << "28tech" << endl;
}
else cout << "29tech" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGNsaW1pdHM+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxjbWF0aD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxvbmcgbG9uZyBtb2QgPSAxZTkgKyA3OwoKI2RlZmluZSBmYXN0X2lvKCkgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKG51bGxwdHIpOwoKY29uc3QgaW50IE4gPSA5OwoKYm9vbCBjaGVjayhpbnQgYm9hcmRbTl1bTl0sIGludCByb3csIGludCBjb2wsIGludCB4KXsKICAgIC8vIGtp4buDbSB0cmEgaMOgbmcgeGVtIGNvaSBz4buRIMSRw6MgeHXhuqV0IGhp4buHbiBjaMawYQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspewogICAgICAgIGlmIChib2FyZFtyb3ddW2ldID09IHgpewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgfQogICAgLy8ga2nhu4NtIHRyYSBj4buZdCB4ZW0gY29pIHPhu5EgxJHDoyB4deG6pXQgaGnhu4duIGNoxrBhCiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKyl7CiAgICAgICAgaWYgKGJvYXJkW2ldW2NvbF0gPT0geCl7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9CiAgICAvLyBraeG7g20gdHJhIHRyb25nIMO0IDN4MyDEkWFuZyB4w6l0IHPhu5EgxJHDoyB4deG6pXQgaGnhu4duIGNoxrBhCiAgICBpbnQgc3RhcnRSb3cgPSByb3cgLSByb3cgJSAzLCBzdGFydENvbCA9IGNvbCAtIGNvbCAlIDM7CiAgICBmb3IgKGludCBpID0gc3RhcnRSb3c7IGkgPCBzdGFydFJvdyArIDM7IGkrKyl7CiAgICAgICAgZm9yIChpbnQgaiA9IHN0YXJ0Q29sOyBqIDwgc3RhcnRDb2wgKyAzOyBqKyspewogICAgICAgICAgICBpZiAoYm9hcmRbaV1bal0gPT0geCl7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKfQoKYm9vbCBCYWNrVHJhY2soaW50IGJvYXJkW05dW05dLCBpbnQgcm93LCBpbnQgY29sKXsKICAgIGlmIChyb3cgPT0gTiAtIDEgJiYgY29sID09IE4pewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgaWYgKGNvbCA9PSBOKXsKICAgICAgICByb3crKzsKICAgICAgICBjb2wgPSAwOwogICAgfQogICAgaWYgKGJvYXJkW3Jvd11bY29sXSA+IDApewogICAgICAgIHJldHVybiBCYWNrVHJhY2soYm9hcmQsIHJvdywgY29sICsgMSk7CiAgICB9CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBOOyBpKyspewogICAgICAgIGlmIChjaGVjayhib2FyZCwgcm93LCBjb2wsIGkpKXsKICAgICAgICAgICAgYm9hcmRbcm93XVtjb2xdID0gaTsKICAgICAgICAgICAgaWYgKEJhY2tUcmFjayhib2FyZCwgcm93LCBjb2wgKyAxKSl7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBib2FyZFtyb3ddW2NvbF0gPSAwOwogICAgfQogICAgcmV0dXJuIGZhbHNlOwp9CmludCBtYWluKCl7CiAgICBpbnQgYm9hcmRbTl1bTl07CiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKyl7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBOOyBqKyspewogICAgICAgICAgICBjaW4gPj4gYm9hcmRbaV1bal07CiAgICAgICAgfQogICAgfQogICAgaWYgKEJhY2tUcmFjayhib2FyZCwgMCwgMCkpewogICAgICAgIGNvdXQgPDwgIjI4dGVjaCIgPDwgZW5kbDsKICAgIH0KICAgIGVsc2UgY291dCA8PCAiMjl0ZWNoIiA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0=