#include<iostream>
#include<vector>
using namespace std;
void shortestPath(vector<vector<int> > &matrix,int n){
vector<int> final(n);
vector<int> distance(n);
int v;
for (int i = 0; i < n; ++i){
final[i] = false;
distance[i] = matrix[0][i];
}
for (int j = 1; j < n; ++j){
int min = INT_MAX;
for (int w = 0; w < n; ++w){
if (!final[w])
if (distance[w] < min){ v = w; min = distance[w]; }
}
final[v] = true;
for (int i = 0; i < n; ++i){
if (!final[i] && (min + matrix[v][i] < distance[i])){
distance[i] = min + matrix[v][i];
}
}
}
for (int i = 0; i < n; ++i){
cout << distance[i] << endl;
}
}
int main()
{
int n;
cout << "please input a number :" << endl;
cin >> n;
vector<vector<int> > matrix(n, vector<int>(n,0));
cout << "please input" << endl;
for (int i = 0; i < n; ++i){
for (int j = 0; j < n; ++j){
cin>>matrix[i][j];
}
}
shortestPath(matrix,n);
return 0;
}