/*安神的*/
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
using namespace std;
const int maxn = 50005;
struct edge{
int v,next;
double w;
};
edge e[maxn * 105];
int head[maxn];
int id;
bool v[maxn];
double d[maxn];
void add(int x,int y,double w){
e[id].v = y;
e[id].w = w;
e[id].next = head[x];
head[x] = id ++;
}
void spfa(int st,int ed){
memset(v,false,sizeof(v));
for(int i = 0;i < maxn;i ++){
d[i] = 0.0;
}
queue<int>q;
q.push(st);
v[st] = true;
d[st] = 1;
while(!q.empty()){
int tp = q.front();
q.pop();
v[tp] = false;
for(int i = head[tp];i != -1;i = e[i].next){
if(d[tp] * e[i].w > d[e[i].v]){
d[e[i].v] = d[tp] * e[i].w;
if(!v[e[i].v]){
v[e[i].v] = true;
q.push(e[i].v);
}
}
}
}
}
int main(){
int n;
while(scanf("%d",&n) != EOF){
memset(head,-1,sizeof(head));
id = 0;
for(int i = 0;i < n;i ++){
int k;
scanf("%d",&k);
for(int j = 0;j < k;j ++){
int t,td;
scanf("%d%d",&t,&td);
add(i,t - 1,(100.0 - td) / 100);
}
}
int st,ed,w;
scanf("%d%d%d",&st,&ed,&w);
spfa(st - 1,ed - 1);
if(d[ed - 1] == 0)printf("IMPOSSIBLE!\n");
else printf("%.2lf\n",w * (1 - d[ed - 1]));
}
return 0;
}
#include <cstdio>
#include <deque>
#include <set>
#include <string>
#include <map>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <queue>
using namespace std;
typedef long long LL;
const int maxn = 105;
struct node{
int v;
int next;
int val;
}e[maxn*maxn];
int head[maxn];
int tot;
bool vis[maxn];
int d[maxn];
void init(){
tot = 0;
memset(head,-1,sizeof(head));
}
void add(int u,int v,int val){
e[tot].v = v;
e[tot].val = val;
e[tot].next = head[u];
head[u] = tot ++;
}
void spfa(int st){
memset(vis,false,sizeof(vis));
memset(d,0x3f,sizeof(d));
queue<int> q;
q.push(st);
vis[st] = true;
d[0] = 0;
while(!q.empty()){
int u = q.front();
q.pop();
vis[u] = false;
for(int i=head[u];i!=-1;i=e[i].next){
int v = e[i].v;
if(d[u]+e[i].val < d[v]){
d[v] = d[u] + e[i].val;
if(!vis[v]){
vis[v] = true;
q.push(v);
}
}
}
}
}
int main(){
int n,m;
while(~scanf("%d%d",&n,&m)){
init();
for(int i=0;i<m;i++){
int s,e,l;
scanf("%d%d%d",&s,&e,&l);
add(s,e,l);
add(e,s,l);
}
spfa(0);
printf("%d\n",d[1]);
}
return 0;
}