#include<bits/stdc++.h>
#define ULL unsigned long long
#define LL long long
#define endl '\n'
#define debug(a) cout<<#a<<"="<<a<<endl;
#define all(v) v.begin(), v.end()
#define PII pair<int,int>
using namespace std;
const int N = 1 *1e6 + 10,M = 5 * 1e3 + 10,inf = 0x3f3f3f3f;
struct node
{
int id,can,grade;
};
vector<node> pi[N];
bool cmp(node a,node b)
{
return a.id < b.id;
}
bool cmp1(node a,node b)
{
return a.can > b.can;
}
void solve()
{
int n,yid;
cin>>n;
for(int i=0;i<n;i++)
{
int p;
cin>>p;
pi[i].resize(p);
for(int j=0;j<p;j++) cin>>pi[i][j].id;
sort(all(pi[i]),cmp);
for(int j=0;j<p;j++) cin>>pi[i][j].can;
sort(all(pi[i]),cmp1);
int t = pi[i][0].can;
int gr[p] = {0},idx = 0;
for(int j=0;j<p;j++) cin>>gr[j];
for(int j=0;j<p;j++)
{
if(t != pi[i][j].can)
{
t = pi[i][j].can;
idx ++;
}
pi[i][j].grade = gr[idx];
}
}
cin>>yid;
LL total = 0,cnt = 0;
for(int i=0;i<n;i++)
{
for(auto x : pi[i])
{
if(x.id == yid)
{
total += x.grade;
cnt ++;
break;
}
}
}
if(total % cnt == 0) printf("%lld",total/cnt);
else
{
int g = __gcd(total%cnt,cnt);
printf("%lld+%lld/%lld",total/cnt,(total%cnt)/g,cnt/g);
}
}
int main()
{
ios::sync_with_stdio(0);cin.tie(nullptr),cout.tie(nullptr);
int _=1;
while(_--)
{
solve();
}
return 0;
}