#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,k,v,w,len,maxx=LLONG_MIN,ans;
vector<pair<int,int> >a[20010];
void dfs(int u,int from,int sum){
for(auto i:a[u]){
if(i.first==from)continue;
if(i.second>=sum){
++ans;
sum=len;
break;
}
}
for(auto i:a[u]){
if(i.first==from)continue;
dfs(i.first,u,sum-i.second);
}
}
signed main(){
cin>>n;
for(int i=1;i<=n;++i){
cin>>k;
for(int j=1;j<=k;++j){
cin>>v>>w;
a[i].push_back(make_pair(v,w));
maxx=max(maxx,w);
}
}
cin>>len;
if(len<=maxx){
cout<<"No solution.";
return 0;
}
dfs(1,1,len);
cout<<ans;
return 0;
}