#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define REP(i, a, b) for (int i = a; i <= b; i++)
#define BACK(i, a, b) for (int i = a; i >= b; i--)
#define MOD 1000000007
#define PI 4 * atan(1)
#define sz(A) (int)A.size()
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pii;
typedef vector<long long> vll;
typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int uint64;
int n,s,t,x;
void solve(int test){
freopen("DN.INP", "r", stdin);
freopen("DN.OUT", "w", stdout);
cin >> n >> s >> t;
vector<pair<int,int>> adj[104];
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
cin >> x;
if(x != 0 && x != 10000){
adj[i].push_back({j, x});
}
}
}
vector<int> truoc(n+1, -1);
vector<int> dist(n+1, 1e8);
priority_queue<pair<int,int>, vector<pair<int,int>>, greater<pair<int,int>>> pq;
dist[s] = 0;
pq.push({0, s});
while(!pq.empty()){
int u = pq.top().second;
pq.pop();
for(auto p: adj[u]){
int v = p.first;
int w = p.second;
if(dist[v] > dist[u] + w){
dist[v] = dist[u] + w;
truoc[v] = u;
pq.push({dist[v], v});
}
}
}
if(truoc[t] == -1){
cout << 0;
}else{
vector<int> res;
int o = t;
while(o != s){
res.push_back(o);
o = truoc[o];
}
res.push_back(s);
cout << dist[t] << "\n";
for(int i=res.size()-1; i >=0; i--){
cout << res[i] << " ";
}
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int typetest = 0;
if (typetest){
int t;
cin >> t;
cin.ignore();
REP(i, 1, t){
solve(i);
}
}
else solve(0);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgUkVQKGksIGEsIGIpIGZvciAoaW50IGkgPSBhOyBpIDw9IGI7IGkrKykKI2RlZmluZSBCQUNLKGksIGEsIGIpIGZvciAoaW50IGkgPSBhOyBpID49IGI7IGktLSkgCiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKI2RlZmluZSBQSSA0ICogYXRhbigxKQojZGVmaW5lIHN6KEEpIChpbnQpQS5zaXplKCkKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gcGlpOwp0eXBlZGVmIHZlY3Rvcjxsb25nIGxvbmc+IHZsbDsKdHlwZWRlZiBsb25nIGludCBpbnQzMjsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCB1aW50MzI7CnR5cGVkZWYgbG9uZyBsb25nIGludCBpbnQ2NDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHVpbnQ2NDsKaW50IG4scyx0LHg7CnZvaWQgc29sdmUoaW50IHRlc3QpewogICAgZnJlb3BlbigiRE4uSU5QIiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJETi5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICBjaW4gPj4gbiA+PiBzID4+IHQ7CiAgICB2ZWN0b3I8cGFpcjxpbnQsaW50Pj4gYWRqWzEwNF07CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKXsKICAgICAgICBmb3IoaW50IGo9MTsgajw9bjsgaisrKXsKICAgICAgICAgICAgY2luID4+IHg7CiAgICAgICAgICAgIGlmKHggIT0gMCAmJiB4ICE9IDEwMDAwKXsKICAgICAgICAgICAgICAgIGFkaltpXS5wdXNoX2JhY2soe2osIHh9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHZlY3RvcjxpbnQ+IHRydW9jKG4rMSwgLTEpOwogICAgdmVjdG9yPGludD4gZGlzdChuKzEsIDFlOCk7CiAgICBwcmlvcml0eV9xdWV1ZTxwYWlyPGludCxpbnQ+LCB2ZWN0b3I8cGFpcjxpbnQsaW50Pj4sIGdyZWF0ZXI8cGFpcjxpbnQsaW50Pj4+IHBxOwogICAgZGlzdFtzXSA9IDA7CiAgICBwcS5wdXNoKHswLCBzfSk7CiAgICB3aGlsZSghcHEuZW1wdHkoKSl7CiAgICAgICAgaW50IHUgPSBwcS50b3AoKS5zZWNvbmQ7CiAgICAgICAgcHEucG9wKCk7CiAgICAgICAgZm9yKGF1dG8gcDogYWRqW3VdKXsKICAgICAgICAgICAgaW50IHYgPSBwLmZpcnN0OwogICAgICAgICAgICBpbnQgdyA9IHAuc2Vjb25kOwogICAgICAgICAgICBpZihkaXN0W3ZdID4gIGRpc3RbdV0gKyB3KXsKICAgICAgICAgICAgICAgIGRpc3Rbdl0gPSBkaXN0W3VdICsgdzsKICAgICAgICAgICAgICAgIHRydW9jW3ZdID0gdTsKICAgICAgICAgICAgICAgIHBxLnB1c2goe2Rpc3Rbdl0sICB2fSk7CiAgICAgICAgICAgIH0gCiAgICAgICAgfQogICAgfQogICAgaWYodHJ1b2NbdF0gPT0gLTEpewogICAgICAgIGNvdXQgPDwgMDsKICAgIH1lbHNlewogICAgICAgIHZlY3RvcjxpbnQ+IHJlczsKICAgICAgICBpbnQgbyA9IHQ7CiAgICAgICAgd2hpbGUobyAhPSBzKXsKICAgICAgICAgICAgcmVzLnB1c2hfYmFjayhvKTsKICAgICAgICAgICAgbyA9IHRydW9jW29dOwogICAgICAgIH0KICAgICAgICByZXMucHVzaF9iYWNrKHMpOwogICAgICAgIGNvdXQgPDwgZGlzdFt0XSA8PCAiXG4iOwogICAgICAgIGZvcihpbnQgaT1yZXMuc2l6ZSgpLTE7IGkgPj0wOyBpLS0pewogICAgICAgICAgICBjb3V0IDw8IHJlc1tpXSA8PCAiICI7CiAgICAgICAgfQogICAgfQogICAgCn0gICAKaW50IG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNvdXQudGllKE5VTEwpOwogICAgaW50IHR5cGV0ZXN0ID0gMDsKICAgIGlmICh0eXBldGVzdCl7CiAgICAgICAgaW50IHQ7CiAgICAgICAgY2luID4+IHQ7CiAgICAgICAgY2luLmlnbm9yZSgpOwogICAgICAgIFJFUChpLCAxLCB0KXsKICAgICAgICAgICAgc29sdmUoaSk7CiAgICAgICAgfQogICAgfQogICAgZWxzZSBzb2x2ZSgwKTsKfSA=