#include<stdio.h>
#include<limits.h>

int main(void){
    int V;
    if(scanf("%d", &V) != 1){
        printf("Invalid input");
        return 0;
    }
    
    if(V<0 || V>10){
        printf("Invalid input");
        return 0;
    }
    
    if(V == 0){
        return 0;
    }
    
    int adj[11][11];
    for(int i=0;i<V;++i){
        for(int j=0;j<V;++j){
            if(scanf("%d", &adj[i][j]) != 1){
                printf("Invalid input");
                return 0;
            }
        }
}

int inMST[11]={0};
int key[11];
int parent[11];

for(int i=0;i<V;++i){
    key[i]=INT_MAX;
    parent[i0=-1;]
}

key[0]=0;

for(int count=0;count<V-1;++count){
    int u=-1;
    int min=INT_MAX;
    for(int v=0;v<V;++v){
        if(!inMST[v] && key[v]<min){
            min=key[v];
            u=v;
        }
    }
    
    if(u == -1) break;
    inMST[u]=1;
    
    for(int v=0;v<V;++v){
        if(!inMST[v] && adj[u][v] !=0 && adj[u][v]<key[v]){
            key[v]=adj[u][v];
            parent[v]=u;
        }
    }
}

int printed=0;
for(int v=1;v<V;++v){
    if(parent[v] != -1){
        printf("%d %d - %\d\n",parent[v], v, adj[parent[v][v]);
        printed++;
    }
}