#include <algorithm>
#include <bitset>
#include <cassert>
#include <climits>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <iomanip>
#include <iostream>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <string>
#ifdef PRINTERS
#include "printers.hpp"
using namespace printers;
#define tr(a) cerr<<#a<<" : "<<a<<endl;
#else
#define tr(a)
#endif
#define ll long long
#define pb push_back
#define mp make_pair
#define pii pair<int,int>
#define vi vector<int>
#define all(a) (a).begin(),(a).end()
#define F first
#define S second
#define sz(x) (int)x.size()
#define hell 1000000007
#define endl '\n'
#define rep(i,a,b) for(int i=a;i<b;i++)
#define rep1(i,b) for(int i=1;i<=b;i++)
using namespace std;
void solve( )
{
int n;
int A[ n] [ n] ,c[ n] [ n] ;
rep( i,0 ,n) {
rep( j,0 ,n) {
cin >> A[ i] [ j] ;
c[ i] [ j] = 0 ;
}
}
rep( i,0 ,n) {
rep( j,0 ,n) {
if ( A[ i] [ j] > 1 )
{
rep( k,0 ,n) {
rep( l,0 ,n) {
if ( A[ i] [ j] == A[ i] [ l] + A[ k] [ j] )
{ c[ i] [ j] = 1 ; }
else continue ;
}
}
}
else { c[ i] [ j] = 1 ; }
}
}
bool flag= 0 ;
rep( i,0 ,n) {
rep( j,0 ,n) {
if ( c[ i] [ j] == 0 )
cout << c[ i] [ j] ;
}
}
/*if(flag==1) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}*/
int main( ) {
ios_base:: sync_with_stdio ( false ) ;
cin .tie ( 0 ) ;
cout .tie ( 0 ) ;
int t= 1 ;
//cin>>t;
while ( t-- ) {
solve( ) ;
}
return 0 ;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGJpdHNldD4KI2luY2x1ZGUgPGNhc3NlcnQ+CiNpbmNsdWRlIDxjbGltaXRzPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxjc3RkaW8+CiNpbmNsdWRlIDxjc3RkbGliPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPGRlcXVlPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8bnVtZXJpYz4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxzdHJpbmc+CgojaWZkZWYgUFJJTlRFUlMKI2luY2x1ZGUgInByaW50ZXJzLmhwcCIKdXNpbmcgbmFtZXNwYWNlIHByaW50ZXJzOwojZGVmaW5lIHRyKGEpCQljZXJyPDwjYTw8IiA6ICI8PGE8PGVuZGw7CiNlbHNlCiNkZWZpbmUgdHIoYSkKI2VuZGlmCgojZGVmaW5lIGxsICAgICAgICAgIGxvbmcgbG9uZwojZGVmaW5lIHBiICAgICAgICAgIHB1c2hfYmFjawojZGVmaW5lIG1wICAgICAgICAgIG1ha2VfcGFpcgojZGVmaW5lIHBpaSAgICAgICAgIHBhaXI8aW50LGludD4KI2RlZmluZSB2aSAgICAgICAgICB2ZWN0b3I8aW50PgojZGVmaW5lIGFsbChhKSAgICAgIChhKS5iZWdpbigpLChhKS5lbmQoKQojZGVmaW5lIEYgICAgICAgICAgIGZpcnN0CiNkZWZpbmUgUyAgICAgICAgICAgc2Vjb25kCiNkZWZpbmUgc3ooeCkgICAgICAgKGludCl4LnNpemUoKQojZGVmaW5lIGhlbGwgICAgICAgIDEwMDAwMDAwMDcKI2RlZmluZSBlbmRsICAgICAgICAnXG4nCiNkZWZpbmUgcmVwKGksYSxiKQlmb3IoaW50IGk9YTtpPGI7aSsrKQojZGVmaW5lIHJlcDEoaSxiKQlmb3IoaW50IGk9MTtpPD1iO2krKykKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgoKdm9pZCBzb2x2ZSgpCnsKaW50IG47CmludCBBW25dW25dLGNbbl1bbl07CnJlcChpLDAsbil7CglyZXAoaiwwLG4pewoJCWNpbj4+QVtpXVtqXTsKCQljW2ldW2pdPTA7Cgl9Cn0KCglyZXAoaSwwLG4pewoJCXJlcChqLDAsbil7CgkJCWlmKEFbaV1bal0+MSkKCQkJewoKCQkJCXJlcChrLDAsbil7CgkJCQkJcmVwKGwsMCxuKXsKCQkJCQkJaWYoQVtpXVtqXSA9PSBBW2ldW2xdICtBW2tdW2pdKQoJCQkJCQkJe2NbaV1bal09MTt9CgkJCQkJCWVsc2UgY29udGludWU7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCWVsc2Uge2NbaV1bal09MTt9CgkJfQoJfQoJYm9vbCBmbGFnPTA7CnJlcChpLDAsbil7CglyZXAoaiwwLG4pewoJCWlmKGNbaV1bal09PTApCgkJCWNvdXQ8PGNbaV1bal07Cgl9Cn0KLyppZihmbGFnPT0xKSBjb3V0PDwiWWVzIjw8ZW5kbDsKZWxzZSBjb3V0PDwiTm8iPDxlbmRsOwp9Ki8KCmludCBtYWluKCl7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNpbi50aWUoMCk7Cgljb3V0LnRpZSgwKTsKCWludCB0PTE7CgkvL2Npbj4+dDsKCXdoaWxlKHQtLSl7CgkJc29sdmUoKTsKCX0KCXJldHVybiAwOwp9CgoK