#include<stdio.h>
#define MAX 100
#define INF 1000000000

int main(){
    int n,matrix[MAX][MAX],s;
    scanf("%d",&n);
    
    if (n < 0){
        printf("Invalid input");
        return o;
    }
    for (int i =0;i<n;i++)
        for (int j=0;j<N;j++)
            scanf("%d",&matrix[i][j]);
            scanf("%d",&s);
            int disk[MAX],visited[MAX]={0};
            for (int i =0; i<n;i++)
                dist[i]=INF;
                dist[s]=0;
                for(int count =0;count<n;count++){
                    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 (!visited[v]&&matrix[u][v]>0&&dist[u]+matrix[u][v]<dist[v])
                            dist[v]=dist[u]+matrix[u][v];
                }
}
for (int i = 0;i < n;i++)
    printf("%d ",dist[i]==INF ? 0 : dist[i]);
    printf(" ");
    return 0;
    }