#include<bits/stdc++.h> using namespace std; #define rep(i,n) for(int i=0;i<n;++i) using lint=long long; int main(){ constexpr int n=19; array<int,n>l; array<bitset<n>,n>a; rep(i,n){ a[n-1-i]=bitset<n>(); cin>>l[n-1-i]; rep(j,l[n-1-i]){ int x; cin>>x; x--; a[n-1-i][x]=1; } } array<vector<lint>,2>dp; rep(i,2)dp[i].resize(1<<n); dp[0][0]=1; rep(d,(1<<n)-1){ bool cnt=0; int k=__builtin_popcount(d); rep(j,n){ if(d>>j&1){ cnt^=1; }else{ if(a[k][j]){ rep(t,2)dp[t^cnt][d+(1<<j)]+=dp[t][d]; } } } } cout<<dp[0][(1<<n)-1]<<" "<<dp[1][(1<<n)-1]<<endl; }