#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <cstdlib>
using namespace std;
typedef long long ll;
int n, m, fa[105], beg, fin, sum, ans;
struct Node{
intx, y, len;
}pos[10005];
int cmp(Node a, Node b) {
return a.len > b.len;
}
int find(intx) {
returnx == fa[x] ? x : fa[x] = find(fa[x]);
}
void kruskal() {
for (int i = 0; i < m; i++) {
int pa = find(pos[i].x);
int pb = find(pos[i].y);
if (pa != pb) {
fa[pa] = pb;
}
if (find(beg) == find(fin)) {
ans = pos[i].len;
break;
}
}
}
int main() {
int Case = 1;
while (scanf("%d%d", &n, &m) == 2, n || m) {
printf("Scenario #%d\n", Case++);
printf("Minimum Number of Trips = ");
ans = 0;
for (int i = 0; i < n; i++) {
fa[i] = i;
}
for (int i = 0; i < m; i++) {
scanf("%d%d%d", &pos[i].x, &pos[i].y, &pos[i].len);
}
scanf("%d%d%d", &beg, &fin, &sum);
sort(pos, pos + m, cmp);
kruskal();
int cnt = 0;
while (sum > 0) {
sum++;
sum -= ans;
cnt++;
}
printf("%d\n\n", cnt);
}
return0;
}