#include <bits/stdc++.h> //i'm falling in love with you 💞
using namespace std;
#define MOD ll(1e9+7)
#define N 1000006
#define MASK (1<<20)
typedef long long ll;
ll dp[MASK],pow_2[N];
int main()
{
ios_base::sync_with_stdio(NULL);
cin.tie(NULL);
#ifndef ONLINE_JUDGE
freopen("input.inp","r",stdin);
freopen("output.out","w",stdout);
#endif
int n, m; cin >> n >> m;
for (int i = 1; i <= n; i++)
{
int k; cin >> k;
int mask = 0;
for (int j = 1; j <= k; j++)
{
int x; cin >> x;
mask += (1 << (x - 1));
}
dp[mask]++;
}
pow_2[0] = 1;
for (ll i = 1; i <= n; i++) pow_2[i] = pow_2[i - 1] * 2 % MOD;
for (int i = 0; i < m; i++)
for (int mask = 0; mask < (1 << m); mask++)
if ((mask >> i) & 1) dp[mask] += dp[mask ^ (1 << i)];
ll ans = 0;
for (int mask = 0; mask < (1 << m); mask++)
if (__builtin_popcount(mask) % 2 == m % 2)
ans = (ans + pow_2[dp[mask]] - 1 + MOD) % MOD;
else
ans = (ans - pow_2[dp[mask]] + 1 + MOD) % MOD;
cout << ans ;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+ICAvL2knbSBmYWxsaW5nIGluIGxvdmUgd2l0aCB5b3Ug8J+SngoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBNT0QgbGwoMWU5KzcpCiNkZWZpbmUgTiAxMDAwMDA2CiNkZWZpbmUgTUFTSyAoMTw8MjApCnR5cGVkZWYgbG9uZyBsb25nIGxsOwoKbGwgZHBbTUFTS10scG93XzJbTl07CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oTlVMTCk7CiAgICBjaW4udGllKE5VTEwpOwogICAgCiAgICAjaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQuaW5wIiwiciIsc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0Lm91dCIsInciLHN0ZG91dCk7CiAgICAjZW5kaWYgCgogICAgaW50IG4sIG07IGNpbiA+PiBuID4+IG07CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSAKICAgIHsKICAgICAgICBpbnQgazsgY2luID4+IGs7CiAgICAgICAgaW50IG1hc2sgPSAwOwogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDw9IGs7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGludCB4OyBjaW4gPj4geDsKICAgICAgICAgICAgbWFzayArPSAoMSA8PCAoeCAtIDEpKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZHBbbWFza10rKzsKICAgIH0KCiAgICBwb3dfMlswXSA9IDE7CiAgICBmb3IgKGxsIGkgPSAxOyAgaSA8PSBuOyBpKyspIHBvd18yW2ldID0gcG93XzJbaSAtIDFdICogMiAlIE1PRDsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykgCiAgICAgICAgZm9yIChpbnQgbWFzayA9IDA7IG1hc2sgPCAoMSA8PCBtKTsgbWFzaysrKQogICAgICAgICAgICBpZiAoKG1hc2sgPj4gaSkgJiAxKSBkcFttYXNrXSArPSBkcFttYXNrIF4gKDEgPDwgaSldOwoKICAgIGxsIGFucyA9IDA7CiAgICBmb3IgKGludCBtYXNrID0gMDsgbWFzayA8ICgxIDw8IG0pOyBtYXNrKyspCiAgICAgICAgaWYgKF9fYnVpbHRpbl9wb3Bjb3VudChtYXNrKSAlIDIgPT0gbSAlIDIpIAogICAgICAgICAgICBhbnMgPSAoYW5zICsgcG93XzJbZHBbbWFza11dIC0gMSArIE1PRCkgJSBNT0Q7CiAgICAgICAgZWxzZSAKICAgICAgICAgICAgYW5zID0gKGFucyAtIHBvd18yW2RwW21hc2tdXSArIDEgKyBNT0QpICUgTU9EOwoKICAgIGNvdXQgPDwgYW5zIDsKCgoKfQ==