/*
Phạm Hoàng Tiến - 20230071
Em có sử dụng Mersenne Twister vì hàm rand() bình thường sẽ ra 1 chuỗi số cố định, nên không phù hợp
Article:
https://c...content-available-to-author-only...s.com/reference/random/mt19937/
*/
#include <bits/stdc++.h>
using namespace std;
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
int n;
int abs (int x)
{
if (x < 0) return -x;
return x;
}
//trả về số ngẫu nhiên trong khoảng từ l đến r
int rng(int l, int r)
{
return l + abs((int)(rnd())) % (r - l + 1);
}
int main()
{
//freopen("ktlt.txt", "w", stdout);
cin >> n;
cout << n << "\n";
int pre = 100;
int x, y, m, cur;
while (n--)
{
m = rng(1, 10);
cur = rng(1, 100);
cout << cur << "\n";
vector<int> vx, vy;
vx.push_back(rng(1, 100));
vy.push_back(rng(1, pre - 1));
for (int i = 2; i <= m; i++)
{
vx.push_back(rng(1, 100));
vy.push_back(rng(1, 100));
}
sort(vy.begin(), vy.end());
if (vy[m - 1] == 1) vy[m - 1]++;
pre = vy[m - 1];
for (int i = 0; i < m; i++) cout << vx[i] << " " << vy[i] << "\n";
}
}
LyoKUGjhuqFtIEhvw6BuZyBUaeG6v24gLSAyMDIzMDA3MQpFbSBjw7Mgc+G7rSBk4bulbmcgTWVyc2VubmUgVHdpc3RlciB2w6wgaMOgbSByYW5kKCkgYsOsbmggdGjGsOG7nW5nIHPhur0gcmEgMSBjaHXhu5dpIHPhu5EgY+G7kSDEkeG7i25oLCBuw6puIGtow7RuZyBwaMO5IGjhu6NwCkFydGljbGU6Cmh0dHBzOi8vYy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ucy5jb20vcmVmZXJlbmNlL3JhbmRvbS9tdDE5OTM3LwoqLwoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbXQxOTkzNyBybmQoY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKCmludCBuOwoKaW50IGFicyAoaW50IHgpCnsKICAgIGlmICh4IDwgMCkgcmV0dXJuIC14OwogICAgcmV0dXJuIHg7Cn0KCi8vdHLhuqMgduG7gSBz4buRIG5n4bqrdSBuaGnDqm4gdHJvbmcga2hv4bqjbmcgdOG7qyBsIMSR4bq/biByCmludCBybmcoaW50IGwsIGludCByKQp7CiAgICByZXR1cm4gbCArIGFicygoaW50KShybmQoKSkpICUgKHIgLSBsICsgMSk7Cn0KCmludCBtYWluKCkKewogICAgLy9mcmVvcGVuKCJrdGx0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKCiAgICBjaW4gPj4gbjsKICAgIGNvdXQgPDwgbiA8PCAiXG4iOwoKICAgIGludCBwcmUgPSAxMDA7CiAgICBpbnQgeCwgeSwgbSwgY3VyOwogICAgd2hpbGUgKG4tLSkKICAgIHsKICAgICAgICBtID0gcm5nKDEsIDEwKTsKCiAgICAgICAgY3VyID0gcm5nKDEsIDEwMCk7CiAgICAgICAgY291dCA8PCBjdXIgPDwgIlxuIjsKCiAgICAgICAgdmVjdG9yPGludD4gdngsIHZ5OwoKICAgICAgICB2eC5wdXNoX2JhY2socm5nKDEsIDEwMCkpOwogICAgICAgIHZ5LnB1c2hfYmFjayhybmcoMSwgcHJlIC0gMSkpOwoKICAgICAgICBmb3IgKGludCBpID0gMjsgaSA8PSBtOyBpKyspCiAgICAgICAgewogICAgICAgICAgICB2eC5wdXNoX2JhY2socm5nKDEsIDEwMCkpOwogICAgICAgICAgICB2eS5wdXNoX2JhY2socm5nKDEsIDEwMCkpOwogICAgICAgIH0KCiAgICAgICAgc29ydCh2eS5iZWdpbigpLCB2eS5lbmQoKSk7CgogICAgICAgIGlmICh2eVttIC0gMV0gPT0gMSkgdnlbbSAtIDFdKys7CiAgICAgICAgcHJlID0gdnlbbSAtIDFdOwoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykgY291dCA8PCB2eFtpXSA8PCAiICIgPDwgdnlbaV0gPDwgIlxuIjsKCiAgICB9Cn0=