func_code_string: #include <bits/stdc++.h>   using namespace std;   const int inf = 2000000000;   const long long infLL = 9000000000000000000;   template <typename first, typename second>   ostream& operator<<(ostream& os, const pair<first, second>& p) {     return os <<  (  << p.first <<  ,   << p.second <<  ) ;   }   template <typename T>   ostream& operator<<(ostream& os, const vector<T>& v) {     os <<  { ;     for (auto it = v.begin(); it != v.end(); ++it) {       if (it != v.begin()) os <<  ,  ;       os << *it;     }     return os <<  } ;   }   template <typename T>   ostream& operator<<(ostream& os, const set<T>& v) {     os <<  [ ;     for (auto it = v.begin(); it != v.end(); ++it) {       if (it != v.begin()) os <<  , ;       os << *it;     }     return os <<  ] ;   }   template <typename T>   ostream& operator<<(ostream& os, const multiset<T>& v) {     os <<  [ ;     for (auto it = v.begin(); it != v.end(); ++it) {       if (it != v.begin()) os <<  ,  ;       os << *it;     }     return os <<  ] ;   }   template <typename first, typename second>   ostream& operator<<(ostream& os, const map<first, second>& v) {     os <<  [ ;     for (auto it = v.begin(); it != v.end(); ++it) {       if (it != v.begin()) os <<  ,  ;       os << it->first <<   =   << it->second;     }     return os <<  ] ;   }   void faltu() { cerr <<   n ; }   template <typename T>   void faltu(T a[], int n) {     for (int i = 0; i < n; ++i) cerr << a[i] <<    ;     cerr <<   n ;   }   template <typename T, typename... hello>   void faltu(T arg, const hello&... rest) {     cerr << arg <<    ;     faltu(rest...);   }   int n, m;   vector<pair<int, int> > vec1[105], vec2[105];   int x[1005], y[1005];   int cnt1[105], cnt2[105];   vector<pair<int, int> > store[105];   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     ;     cin >> n >> m;     for (int i = 1; i <= n; ++i) cnt1[i] = cnt2[i] = 1;     for (int i = 0; i < m; ++i) {       cin >> x[i] >> y[i];       if (x[i] > y[i]) swap(x[i], y[i]);       ++cnt1[x[i]];       ++cnt2[y[i]];     }     int r1 = 1e6, c1 = 1e6;     int r2 = r1 - 1, c2 = c1 + 1;     for (int i = 1; i <= n; ++i) {       for (int j = 0; j < cnt1[i]; ++j) {         vec1[i].push_back(make_pair(r1, c1));         store[i].push_back(make_pair(r1, c1));         ++r1;       }       for (int j = 0; j < cnt2[i]; ++j) {         vec2[i].push_back(make_pair(r2, c2));         store[i].push_back(make_pair(r2, c2));         ++c2;       }       reverse(vec1[i].begin(), vec1[i].end());       reverse(vec2[i].begin(), vec2[i].end());       store[i].push_back(make_pair(vec1[i].back().first, vec2[i].back().second));       vec1[i].pop_back();       vec2[i].pop_back();       --c1;       --r2;     }     for (int i = 0; i < m; ++i) {       assert(!vec1[x[i]].empty());       assert(!vec2[y[i]].empty());       store[x[i]].push_back(           make_pair(vec1[x[i]].back().first, vec2[y[i]].back().second));       vec1[x[i]].pop_back();       vec2[y[i]].pop_back();     }     for (int i = 1; i <= n; ++i) {       cout << (int)store[i].size() <<   n ;       for (auto x : store[i]) cout << x.first <<     << x.second <<   n ;     }   }   