#include <bits/stdc++.h>
#define ll long long int
using namespace std;
const ll N = 105;
vector<ll> graph[N];
ll visited[N];
ll level[N];
 
ll bfs(ll src, ll des) {
    queue<ll> q;
    q.push(src);
    visited[src]=1;
    while(!q.empty()) {
        ll cur = q.front();
        q.pop();
        for(ll child: graph[cur]) {
            if(!visited[child]) {
                q.push(child);
                visited[child] = 1;
                level[child]=level[cur]+1;
            }
        }
    }
    return level[des];
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    ll n,src,des;cin>>n>>src>>des;
    for(ll i=0;i<n;i++) {
        for(ll j=0;j<n;j++) {
            ll x; cin>>x;
            if(x==1) {
                graph[i+1].push_back(j+1);
            }
        }
    }
    cout<<bfs(src, des)<<"\n";
}
 
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nIGludAp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsbCBOID0gMTA1Owp2ZWN0b3I8bGw+IGdyYXBoW05dOwpsbCB2aXNpdGVkW05dOwpsbCBsZXZlbFtOXTsKCmxsIGJmcyhsbCBzcmMsIGxsIGRlcykgewogICAgcXVldWU8bGw+IHE7CiAgICBxLnB1c2goc3JjKTsKICAgIHZpc2l0ZWRbc3JjXT0xOwogICAgd2hpbGUoIXEuZW1wdHkoKSkgewogICAgICAgIGxsIGN1ciA9IHEuZnJvbnQoKTsKICAgICAgICBxLnBvcCgpOwogICAgICAgIGZvcihsbCBjaGlsZDogZ3JhcGhbY3VyXSkgewogICAgICAgICAgICBpZighdmlzaXRlZFtjaGlsZF0pIHsKICAgICAgICAgICAgICAgIHEucHVzaChjaGlsZCk7CiAgICAgICAgICAgICAgICB2aXNpdGVkW2NoaWxkXSA9IDE7CiAgICAgICAgICAgICAgICBsZXZlbFtjaGlsZF09bGV2ZWxbY3VyXSsxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGxldmVsW2Rlc107Cn0KaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7CiAgICBsbCBuLHNyYyxkZXM7Y2luPj5uPj5zcmM+PmRlczsKICAgIGZvcihsbCBpPTA7aTxuO2krKykgewogICAgICAgIGZvcihsbCBqPTA7ajxuO2orKykgewogICAgICAgICAgICBsbCB4OyBjaW4+Png7CiAgICAgICAgICAgIGlmKHg9PTEpIHsKICAgICAgICAgICAgICAgIGdyYXBoW2krMV0ucHVzaF9iYWNrKGorMSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBjb3V0PDxiZnMoc3JjLCBkZXMpPDwiXG4iOwp9Cg==