#include <bits/stdc++.h>   using namespace std;   long long INF = 1e9;   const int maxn = 1e6 + 5;   int a[maxn];   int tpr = 0;   vector<int> adj[maxn];   void dfs(int root) {     if (adj[root].size() > 0) {       if (adj[root][0] == (root + 1)) {         dfs(root + 1);         tpr++;       } else         return;     }   }   int main() {     int n, m, t, i, j, k;     int flag = 0, flag2;     int ans = 0;     cin >> n >> k;     for (int i = 0; i < k; i++) {       cin >> m;       ans += m - 1;       int y;       int prev = -1;       for (int j = 0; j < m; j++) {         cin >> y;         if (y == 1) {           flag2 = m - 1;         }         if ((j == 0) && (y == 1)) {           flag = 1;         }         if (prev != -1) adj[prev].push_back(y);         prev = y;       }     }     if (flag == 0) {       ans += n - 1;       cout << ans << endl;       return 0;     }     dfs(1);     ans -= tpr;     ans += (n - tpr - 1);     cout << ans << endl;     return 0;     return 0;   }   