#include using namespace std; #define rep(i,n) for (int i = 0; i < n; ++i) using ll = long long; using P = pair; const long long MAX = 100, INF = 1e10, WHITE = 0, GRAY = 1, BLACK = 2; long long n, M[MAX][MAX]; void init(){ for (int i = 0; i < n; i++) for (int j = 0; j < n; j++)M[i][j] = INF; } int main() { cin>>n; init(); vectors(n); rep(i,n)cin>>s[i]; int m;cin>>m; rep(i,m){ int a,b,c;cin>>a>>b>>c; M[a][b]=c; M[b][a]=c; } for (int i = 0; i < n; i++) M[i][i] = 0; for (int k = 0; k < n; k++){ for (int i = 0; i < n; i++){ if (M[i][k] == INF)continue; for (int j = 0; j < n; j++){ if (M[k][j] == INF) continue; M[i][j] = min(M[i][j], M[i][k] + M[k][j]); } } } rep(i,4){ rep(j,4)cout<