#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=1;i<=n;++i)
#define mp(x,y) make_pair(x,y)
#define pb(x) push_back(x)
#define LL long long
#define N 105
#define MOD 1000000007
bool is[20][N];
int C[N][N],p[1<<18],q[N],n,m,k,tp,ts;
int count(int x){return x?count(x>>1)+(x&1):0;}
int main()
{
	for(int i=1;i<=101;i++)
	{
		C[i][0]=1;C[i][i]=1;
		for(int j=1;j<i;j++)C[i][j]=(C[i-1][j-1]+C[i-1][j])%MOD;
	}
	scanf("%d%d%d",&n,&m,&k);
	rep(i,m){
		scanf("%d",&tp);
		rep(j,tp)scanf("%d",&ts),is[i][ts]=1;
	}
	int ans=0;
	//printf("%d\n",C[3][1]);
	rep(zz,(1<<m)-1){
		rep(i,n)q[i]=0;
		rep(i,n)rep(j,m)if((zz&(1<<(j-1)))&&is[j][i])q[i]|=1<<(j-1);
		rep(i,n)++p[q[i]];
		int tpp=(count(zz)&1)?1:-1;
		rep(i,n){
			ans+=tpp*(2ll*C[p[q[i]]][k]*C[p[zz^q[i]]][k]%MOD),p[q[i]]=0;
			if(ans<0)ans+=MOD;
			if(ans>=MOD)ans-=MOD;
		}
	}
	printf("%d\n",ans);
	return 0;
}
