#include <bits/stdc++.h>
#define f first
#define s second
using namespace std;
bool used[ 200005 ] ;
int w[ 200005 ] ;
vector< int > graph[ 1000 ] ;
queue< int > q;
int main( )
{
ios:: sync_with_stdio ( false ) ;
freopen ( "input.txt" , "r" , stdin ) ;
freopen ( "output.txt" , "w" , stdout ) ;
int n,f,s;
cin >> n >> f >> s;
if ( f > s)
swap( f, s) ;
for ( int i = 0 ; i < 10000 ; ++ i)
w[ i] = - 1 ;
for ( int i = 0 ; i < n; ++ i)
{
for ( int j = 0 ; j < n; ++ j)
{
int a;
cin >> a;
if ( a == 1 )
{
graph[ i] .push_back ( j) ;
}
}
}
q.push ( 0 ) ;
used[ 0 ] = true ;
w[ 0 ] = 0 ;
while ( ! q.empty ( ) )
{
int x = q.front ( ) ;
q.pop ( ) ;
for ( int y: graph[ x] )
{
if ( used[ y] == false )
{
q.push ( y) ;
used[ y] = true ;
w[ y] = w[ x] + 1 ;
}
}
}
for ( int i = 0 ; i < n; ++ i)
{
cout << w[ i] << " " << i << endl;
}
cout << w[ s- 1 ] ;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZiBmaXJzdAojZGVmaW5lIHMgc2Vjb25kCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpib29sIHVzZWRbMjAwMDA1XTsKaW50IHdbMjAwMDA1XTsKdmVjdG9yPGludD4gZ3JhcGhbMTAwMF07CnF1ZXVlPGludD4gcTsKCmludCBtYWluKCkKewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAgaW50IG4sZixzOwogICAgY2luID4+IG4gPj4gZiA+PiBzOwogICAgaWYoZiA+IHMpCiAgICAgICAgc3dhcChmLCBzKTsKICAgIGZvcihpbnQgaSA9IDA7aSA8IDEwMDAwOyArK2kpCiAgICAgICAgd1tpXSA9IC0xOwogICAgZm9yKGludCBpID0gMDtpIDwgbjsgKytpKQogICAgewogICAgICAgIGZvcihpbnQgaiA9IDA7aiA8IG47ICsraikKICAgICAgICB7CiAgICAgICAgICAgIGludCBhOwogICAgICAgICAgICBjaW4gPj4gYTsKICAgICAgICAgICAgaWYoYSA9PSAxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBncmFwaFtpXS5wdXNoX2JhY2soaik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBxLnB1c2goMCk7CiAgICB1c2VkWzBdID0gdHJ1ZTsKICAgIHdbMF0gPSAwOwogICAgd2hpbGUoIXEuZW1wdHkoKSkKICAgIHsKICAgICAgICBpbnQgeCA9IHEuZnJvbnQoKTsKICAgICAgICBxLnBvcCgpOwogICAgICAgIGZvcihpbnQgeTogZ3JhcGhbeF0pCiAgICAgICAgewogICAgICAgICAgICBpZih1c2VkW3ldID09IGZhbHNlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBxLnB1c2goeSk7CiAgICAgICAgICAgICAgICB1c2VkW3ldID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHdbeV0gPSB3W3hdICsgMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGZvcihpbnQgaSA9IDA7aSA8IG47ICsraSkKICAgIHsKICAgICAgICBjb3V0IDw8IHdbaV0gPDwgIiAiIDw8IGkgPDwgZW5kbDsKICAgIH0KICAgIGNvdXQgPDwgd1tzLTFdOwoKfQ==