#include <bits/stdc++.h>
using namespace std;
int main(){
    int N;
    cin>>N;
    vector<vector<int>> graph(N,vector<int>N);
    for(int i=0;i<N;i++){
        for(int j=0;j<N;j++){
            cin>>graph[i][j];
        }
    }
    int src;
    cin>>src;
    vector<int> dist(N,INT_MAX);
    vector<int> visited(N,0);
    dist[src]=0;
    for(int c=0;c<N;c++){
        int u=-1;
        for(int i=0;i<N;i++){
            if(!visited[i] && (u==-1 || dist[i] < dist[u])){
            u=i;
        }
    }
    visited[u]=1;
    for(int v=0;v<N;v++){
        if(graph[u][v] >0 && dist[u] + graph[u][v] <dist[v]){
            dist[v]=dist[u]+graph[u][v];
    }
    }
    cout<<"Vertex /tdistance from Source/n";
    for(int i=0;i<N;i++){
        cout<<i<<"\t"<<dist[i]<<"\n";
    }
    return 0;
}