#include <bits/stdc++.h>   using namespace std;   int n, m, loc[250] = {}, isi[250] = {}, idx = 0;   int kosong() {     for (int i = 0, _n = (n); i < _n; i++)       if (isi[i] == -1) return i;     return -111;   }   int main() {     memset(isi, -1, sizeof isi);     scanf( %d %d , &n, &m);     for (int i = 0, _n = (m); i < _n; i++) {       int a;       scanf( %d , &a);       for (int j = 0, _n = (a); j < _n; j++) {         int x;         scanf( %d , &x);         x--;         isi[x] = idx;         loc[idx] = x;         idx++;       }     }     vector<pair<int, int> > ans;     for (int i = 0, _n = (idx); i < _n; i++)       if (isi[i] != i) {         if (isi[i] == -1) {           ans.push_back(make_pair(loc[i], i));           isi[loc[i]] = -1;           loc[i] = i;           isi[i] = i;         } else {           int k = kosong();           ans.push_back(make_pair(i, k));           isi[k] = isi[i];           loc[isi[i]] = k;           isi[i] = -1;           i--;         }       }     printf( %d n , ans.size());     for (int i = 0, _n = (ans.size()); i < _n; i++)       printf( %d %d n , ans[i].first + 1, ans[i].second + 1);     return 0;   }   