#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
void dij(int src, int dest, int n, vector<vector<pair<int,int>>> &adj, vector<int> &path, vector<int> &dist, vector<int> &par){
priority_queue<pair<int,int>, vector<pair<int,int>>, greater<pair<int,int>>> pq;
pq.push({0, src});
while (!pq.empty()) {
int u = pq.top().second;
int d = pq.top().first;
pq.pop();
if (u == dest) break;
if (d > dist[u]) continue;
for(int i = 0; i < adj[u].size(); i++) {
int v = adj[u][i].first;
int weight = adj[u][i].second;
if (dist[u] + weight < dist[v]) {
dist[v] = dist[u] + weight;
par[v] = u;
pq.push({dist[v], v});
}
}
}
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int tc = 0, n;
while(cin >> n && n != 0){
tc++;
vector<vector<pair<int,int>>> adj(n + 1);
vector<int> path;
vector<int> dist(n + 1, INT_MAX);
vector<int> par(n + 1, -1);
for(int i = 1; i <= n; i++){
int t; cin >> t;
for(int j = 1; j <= t; j++){
int b,w;
cin >> b >> w;
adj[i].push_back({b,w});
}
}
int u,v; cin >> u >> v;
dist[u] = 0;
dij(u,v,n,adj,path,dist,par);
cout << "Case " << tc <<": Path =";
int i = v;
while(i != u){
path.push_back(i);
i = par[i];
}
path.push_back(u);
for(int i = path.size() - 1; i >= 0; i--){
cout << ' ' << path[i];
}
cout << "; " << dist[v] << " second delay" << endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBlbmRsICJcbiIKCnZvaWQgZGlqKGludCBzcmMsIGludCBkZXN0LCBpbnQgbiwgdmVjdG9yPHZlY3RvcjxwYWlyPGludCxpbnQ+Pj4gJmFkaiwgdmVjdG9yPGludD4gJnBhdGgsIHZlY3RvcjxpbnQ+ICZkaXN0LCB2ZWN0b3I8aW50PiAmcGFyKXsKCXByaW9yaXR5X3F1ZXVlPHBhaXI8aW50LGludD4sIHZlY3RvcjxwYWlyPGludCxpbnQ+PiwgZ3JlYXRlcjxwYWlyPGludCxpbnQ+Pj4gcHE7CglwcS5wdXNoKHswLCBzcmN9KTsKCQoJd2hpbGUgKCFwcS5lbXB0eSgpKSB7CiAgICAgICAgaW50IHUgPSBwcS50b3AoKS5zZWNvbmQ7CiAgICAgICAgaW50IGQgPSBwcS50b3AoKS5maXJzdDsKICAgICAgICBwcS5wb3AoKTsKCiAgICAgICAgaWYgKHUgPT0gZGVzdCkgYnJlYWs7CgogICAgICAgIGlmIChkID4gZGlzdFt1XSkgY29udGludWU7CgogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBhZGpbdV0uc2l6ZSgpOyBpKyspIHsKICAgICAgICAJCiAgICAgICAgICAgIGludCB2ID0gYWRqW3VdW2ldLmZpcnN0OwogICAgICAgICAgICBpbnQgd2VpZ2h0ID0gYWRqW3VdW2ldLnNlY29uZDsKCiAgICAgICAgICAgIGlmIChkaXN0W3VdICsgd2VpZ2h0IDwgZGlzdFt2XSkgewogICAgICAgICAgICAgICAgZGlzdFt2XSA9IGRpc3RbdV0gKyB3ZWlnaHQ7CiAgICAgICAgICAgICAgICBwYXJbdl0gPSB1OwogICAgICAgICAgICAgICAgcHEucHVzaCh7ZGlzdFt2XSwgdn0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgpzaWduZWQgbWFpbigpewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7Y291dC50aWUoMCk7CiAgICBpbnQgdGMgPSAwLCBuOwogICAgd2hpbGUoY2luID4+IG4gJiYgbiAhPSAwKXsKICAgIAl0YysrOwogICAgCXZlY3Rvcjx2ZWN0b3I8cGFpcjxpbnQsaW50Pj4+IGFkaihuICsgMSk7CiAgICAJdmVjdG9yPGludD4gcGF0aDsKICAgIAl2ZWN0b3I8aW50PiBkaXN0KG4gKyAxLCBJTlRfTUFYKTsKICAgIAl2ZWN0b3I8aW50PiBwYXIobiArIDEsIC0xKTsgCiAgICAJCiAgICAJZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspewogICAgCQlpbnQgdDsgY2luID4+IHQ7CiAgICAJCWZvcihpbnQgaiA9IDE7IGogPD0gdDsgaisrKXsKICAgIAkJCWludCBiLHc7CiAgICAJCQljaW4gPj4gYiA+PiB3OwogICAgCQkJYWRqW2ldLnB1c2hfYmFjayh7Yix3fSk7CgkJCX0KCQl9CgkJCgkJaW50IHUsdjsgY2luID4+IHUgPj4gdjsKCQlkaXN0W3VdID0gMDsKCQkKCQlkaWoodSx2LG4sYWRqLHBhdGgsZGlzdCxwYXIpOwoJCQoJCWNvdXQgPDwgIkNhc2UgIiA8PCB0YyA8PCI6IFBhdGggPSI7CgkJaW50IGkgPSB2OwoJCXdoaWxlKGkgIT0gdSl7CgkJCXBhdGgucHVzaF9iYWNrKGkpOwoJCQlpID0gcGFyW2ldOwoJCX0KCQlwYXRoLnB1c2hfYmFjayh1KTsKCQkKCQlmb3IoaW50IGkgPSBwYXRoLnNpemUoKSAtIDE7IGkgPj0gMDsgaS0tKXsKCQkJY291dCA8PCAnICcgPDwgcGF0aFtpXTsKCQl9CgkJCgkJY291dCA8PCAiOyAiIDw8IGRpc3Rbdl0gPDwgIiBzZWNvbmQgZGVsYXkiIDw8IGVuZGw7Cgl9Cn0K