#include<stdio.h>
#include<limits.h>
#define INF 99999
int main(){
    int n;
    scanf("%d",&n);
    if (n < 0){
        printf("Invalid input");
        return 0;
    }
    int matrix[n][n];
    for (int i = 0;i < n; i++){
        for (int j + 0;j < n; j++){
            scanf("%d",&matrix[i][j]);
            if (i != j && matrix[i][j] == 0) {
                matrix[i][j] = INF;
            }
        }
    }
    int start;
    scanf("%d", &start);
    int dist[n], visited[n];
    for (int i = 0; i < n; i++){
        dist[i]= matrix[start][i];
        visited[i]=0;
        
    }
    dist[start]=0;
    visited[start]=1;
    for (int count = 1; count < n -1; count++){
        int min = INF, u = -1;
        for (int i = 0; i < n; i++){
            if (!visited[i] && dist[i] < min){
                min = dist[i];
                u = i;
            }
        }
        if (u == -1) break;
        visited[u] = 1;
        for (int v = 0;v < n; v++){
            if (!visited[v] && dist[u] + matrix[u][v] < dist[v]){
                dist[v] = dist[u] + matrix[u][v];
            }
        }
    }
    for (int i = 0; i < n; i++) {
        if (dist[i] == INF)
            printf("INF ");
        else
            printf("%d ",dist[i]);
    }
    return 0;
}