#include <stdio.h>
#include <string.h>

#define NMAX 101
#define INFINITO 1000001

int g[NMAX][NMAX], d[NMAX][NMAX];
int custo[NMAX], marc[NMAX];
int n, s, t;
int soma;

int mini(int a, int b) {
	if (a<b) {
		return a;
	} else {
		return b;
	}
}

int dfs(int v, int m) {
	int w;
	int mi;

	if (v!=t) {
		for (w=1; w<=n; w++) {
			if (g[v][w]>0&&!marc[w]) {
				marc[w]=1;
				mi=dfs(w, mini(g[v][w], m));
				g[v][w]-=mi;
				g[w][v]+=mi;
				marc[w]=0;
			}
		}
	} else {
		soma+=m;
	}

	return m;
}

int main() {
	int nteste=1;
	int c;
	int i, j, k;
	int x, y, v;
	int bandwidth;
	int marcados;
	int u;

	while (scanf("%d", &n)&&n!=0) {
		scanf("%d %d %d", &s, &t, &c);
		memset(g, 0, sizeof(g));
		memset(marc, 0, sizeof(marc));
		for (i=1; i<=n; i++) {
			for (j=1; j<=n; j++) {
				d[i][j]=INFINITO;
			}
		}
		for (i=0; i<c; i++) {
			scanf("%d %d %d", &x, &y, &v);
			g[x][y]+=v;
			g[y][x]+=v;
		}
		marc[s]=1;
		soma=0;
		dfs(s, INFINITO);
		bandwidth=soma;
		printf("Network %d\nThe bandwidth is %d.\n\n", nteste++, bandwidth);
	}
	
	return 0;
}

