Problem:
Score : 200 points

Problem Statement

N Snukes called Snuke 1, Snuke 2, ..., Snuke N live in a town.

There are K kinds of snacks sold in this town, called Snack 1, Snack 2, ..., Snack K. The following d_i Snukes have Snack i: Snuke A_{i, 1}, A_{i, 2}, \cdots, A_{i, {d_i}}.

Takahashi will walk around this town and make mischief on the Snukes who have no snacks. How many Snukes will fall victim to Takahashi's mischief?

Constraints

All values in input are integers.

1 \leq N \leq 100

1 \leq K \leq 100

1 \leq d_i \leq N

1 \leq A_{i, 1} < \cdots < A_{i, d_i} \leq N

Input

Input is given from Standard Input in the following format:

N K
d_1
A_{1, 1} \cdots A_{1, d_1}
\vdots
d_K
A_{K, 1} \cdots A_{K, d_K}

Output

Print the answer.

Sample Input 1

3 2
2
1 3
1
3

Sample Output 1

1

Snuke 1 has Snack 1.

Snuke 2 has no snacks.

Snuke 3 has Snack 1 and 2.

Thus, there will be one victim: Snuke 2.

Sample Input 2

3 3
1
3
1
3
1
3

Sample Output 2

2

Solution in C++ (GCC 9.2.1) (judge verdict: Accepted)

// When you are hungry for something and you're determined and you're focused 
// and you're committed to something it's hard to surrender, isn't it?

#include<bits/stdc++.h>
using namespace std;

#define int                     ll
#define endl                    "\n"
#define ff                      first
#define ss                      second
#define ll                      long long 
#define pb                      push_back
#define mod                     1000000007
#define vi                      vector<int>
#define vpii                    vector<pii>
#define pii                     pair<int,int>
#define fff(i,n)                for(int i=0;i<n;i++)
#define setbit(x)               __builtin_popcount(x)
#define all(x)                  (x).begin(), (x).end()
#define fab(i,a,b)              for(int i=(a);i<(b);i++)
#define clrvis                  memset(vis,0,sizeof(vis));
#define clrdis                  memset(dis,-1,sizeof(dis));
#define clrgra                  for(auto& i:gra) i.clear();
#define clr(arr,i)              memset((arr),(i),sizeof(arr));
#define fio                     ios_base::sync_with_stdio(false); cin.tie(NULL);

const long double eps = 1.0e-14;      // allowable error 

ll fac[10000001]; 
void fact(){
    fac[0]=1;
    for(int i=1;i<=10000000;i++){
        fac[i]=(fac[i-1]*i)%mod;
    }
    return ;
}

ll prime[400005];
void sieve(){
    prime[0]=0;
    prime[1]=0;
    for(int i=2;i<400005;i++){
        prime[i]=1;
    }
    for(int i=2;i*i<400005;i++){
        if(prime[i]==1){
            for(int j=i*i;j<400005;j+=i){
                prime[j]=0;
            }
        }
    }
    
}
 
ll power(ll n , ll p ){
    if(p==0)
        return 1;
    
    ll res = power((n*n)%mod,p/2);
    if(p%2==1)
        res = (n*res)%mod;
    
    return res;
}
 
ll bit[100005]; 
void upd(ll i,ll val,ll n) {
    for(;i<=n;i+=i&(-i))
        bit[i]+=val;
}
 
ll qry(ll i) {
    ll sum=0;
    for(;i>0;i-=i&(-i))
        sum+=bit[i];
    return sum;
}
 
ll pa[500005]; 
ll find(ll u) {
    if(pa[u]==u)
        return u;
    return pa[u]=find(pa[u]);			// path compression
}

ll si[500005]; 
void uni(ll u,ll v) {
    ll p1=find(u);
    ll p2=find(v);
    if(p1==p2)
        return;
    if(si[p1]<si[p2])				// union by rank
        swap(p1,p2);
    si[p1]+=si[p2];
    pa[p2]=p1;
    return;
}

int log(int x) {
    int i;
    for(i=0;(1<<i)<=x;i++);
    return i;
}

vector<int> osci(vector<int> v) {
	vector<int> v1;
	int n=v.size();
	int i=0,j=n-1;
	for(int k=0;k<n;k++) {
		if(k%2==0)
			v1.pb(v[i++]);
		else
			v1.pb(v[j--]);
	}
	reverse(all(v1));
	return v1;
} 

vi gra[100005];
int dis[100005];
int vis[100005];

void dfs(int v) {
    vis[v]=1;
    //dis[v]=q;
    for(auto i:gra[v]) {
        if(vis[i]==0) {
            dfs(i);
        }
    }
}

void bfs(int v) {
    queue<int> q;
    q.push(v);
    vis[v]=1;
    //dis[v]=0;
    
    while(!q.empty()) {
        int curr=q.front();
        q.pop();
        for(auto i:gra[curr]) {
            if(vis[i]==0) {
                q.push(i);
                //dis[i]=dis[curr]+1;
                vis[i]=1;
            }
        }
    }
}

 
int32_t main() {
    fio
	cout << fixed << setprecision(15);
    int n,k;cin >> n >> k;
    map<int,int> m;
    
    fff(i,k) {
        int d;cin>>d;
        fff(j,d) {
            int x;cin >> x;
            m[x]=1;
        }
    }
    
    int c=0;
    fab(i,1,n+1) {
        if(m[i]==0)
        c++;
    }
    
    cout << c;
    
    return 0;
    
}