#include <bits/stdc++.h>
using namespace std;
struct stu{
int id,sc;
};
struct node{
int p;
stu s[110];
int w[110];
}a[45];
int gcd(int a,int b){return b == 0 ? a : gcd(b, a % b);}
int n;
void func(int &n,int &d){
int c = gcd(n, d);
n /= c;
d /= c;
}
void print(int n,int d) {
int w = n/d;
int f = n%d;
if(w > 0){
cout << w;
if(f > 0){
cout << "+";
}
}
if(f > 0){
cout << f << "/" << d;
}
if(w == 0 && f == 0){
cout << "0";
}
return;
}
void prt(int c,int a[]){
int s = 0;
for(int i = 1;i <= c;i++){
if(a[i] == 0) c--;
s += a[i];
}
int n = s;
int d = c;
func(n, d);
if(d == 1){
cout << n;
}else{
print(n,d);
}
}
int num;
bool cmp(stu x,stu y){
return x.sc > y.sc;
}
bool cmp2(stu x,stu y){
return x.id < y.id;
}
int score[45];
int main(){
cin >> n;
for(int i = 1;i <= n;i++){
cin >> a[i].p;
for(int j = 1;j <= a[i].p;j++) cin >> a[i].s[j].id;
sort(a[i].s+1,a[i].s+a[i].p+1,cmp2);
for(int j = 1;j <= a[i].p;j++) cin >> a[i].s[j].sc;
for(int j = 1;j <= a[i].p;j++) cin >> a[i].w[j];
}
cin >> num;
int t[110];
for(int i = 1;i <= n;i++){
memset(t,0,sizeof(t));
sort(a[i].s+1,a[i].s+a[i].p+1,cmp);
int p = 0,cnt = 0;
for(int j = 1;j <= a[i].p;j++){
if(a[i].s[j].sc != a[i].s[j-1].sc){
p++;
t[j] = p+cnt;
cnt = 0;
}else{
t[j] = p;
cnt++;
}
}
for(int j = 1;j <= a[i].p;j++){
if(a[i].s[j].id == num){
score[i] = a[i].w[t[j]];
}
}
}
prt(n,score);
return 0;
}