// ~~ icebear ~~
#include <bits/stdc++.h>
using namespace std;
#define int ll
typedef long long ll;
typedef pair<int, int> ii;
typedef pair<int, ii> iii;
template<class T>
bool minimize(T &a, const T &b) {
if (a > b) return a = b, true;
return false;
}
template<class T>
bool maximize(T &a, const T &b) {
if (a < b) return a = b, true;
return false;
}
#define FOR(i,a,b) for(int i=(a); i<=(b); ++i)
#define FORR(i,a,b) for(int i=(a); i>=(b); --i)
#define REP(i, n) for(int i=0; i<(n); ++i)
#define RED(i, n) for(int i=(n)-1; i>=0; --i)
#define MASK(i) (1LL << (i))
#define BIT(S, i) (((S) >> (i)) & 1)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define all(x) x.begin(), x.end()
#define task "icebearat"
const int MOD = 1e9 + 7;
const int inf = 1e9 + 27092008;
const ll INF = 1e18 + 27092008;
mt19937_64 rd(chrono::steady_clock::now().time_since_epoch().count());
int random(int l, int r) {
return l + rd() % (r - l + 1);
}
void gen(int i) {
ofstream cout("gen" + to_string(i) + ".inp");
#define N (int)2e5
#define MAX (int)1e8
int n = random(max(1ll, N - 100), N), q = random(max(1ll, N - 100), N);
cout << n << '\n';
FOR(i, 1, n) {
int l = random(1e4, 9e8);
int r = random(l, l + 1e8);
cout << l << ' ' << r << '\n';
}
cout << q << '\n';
FOR(i, 1, q) {
int t = random(1, 10);
if (t == 10) { // -1
int a = random(1, 1e9);
int b = random(a, 1e9);
cout << a << ' ' << b << '\n';
} else {
int a = random(1e4, 9e8);
int b = random(a, a + 1e8);
cout << a << ' ' << b << '\n';
}
}
cout.close();
}
void process(void) {
FOR(i, 1, 30) {
gen(i);
}
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
if (fopen(task".inp", "r")) {
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
int tc = 1;
// cin >> tc;
while(tc--) {
process();
}
return 0;
}
Ly8gfn4gaWNlYmVhciB+fgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBpbnQgbGwKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gaWk7CnR5cGVkZWYgcGFpcjxpbnQsIGlpPiBpaWk7Cgp0ZW1wbGF0ZTxjbGFzcyBUPgogICAgYm9vbCBtaW5pbWl6ZShUICZhLCBjb25zdCBUICZiKSB7CiAgICAgICAgaWYgKGEgPiBiKSByZXR1cm4gYSA9IGIsIHRydWU7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKdGVtcGxhdGU8Y2xhc3MgVD4KICAgIGJvb2wgbWF4aW1pemUoVCAmYSwgY29uc3QgVCAmYikgewogICAgICAgIGlmIChhIDwgYikgcmV0dXJuIGEgPSBiLCB0cnVlOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiNkZWZpbmUgRk9SKGksYSxiKSBmb3IoaW50IGk9KGEpOyBpPD0oYik7ICsraSkKI2RlZmluZSBGT1JSKGksYSxiKSBmb3IoaW50IGk9KGEpOyBpPj0oYik7IC0taSkKI2RlZmluZSBSRVAoaSwgbikgZm9yKGludCBpPTA7IGk8KG4pOyArK2kpCiNkZWZpbmUgUkVEKGksIG4pIGZvcihpbnQgaT0obiktMTsgaT49MDsgLS1pKQojZGVmaW5lIE1BU0soaSkgKDFMTCA8PCAoaSkpCiNkZWZpbmUgQklUKFMsIGkpICgoKFMpID4+IChpKSkgJiAxKQojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQojZGVmaW5lIHRhc2sgImljZWJlYXJhdCIKCmNvbnN0IGludCBNT0QgPSAxZTkgKyA3Owpjb25zdCBpbnQgaW5mID0gMWU5ICsgMjcwOTIwMDg7CmNvbnN0IGxsIElORiA9IDFlMTggKyAyNzA5MjAwODsKCm10MTk5MzdfNjQgcmQoY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKaW50IHJhbmRvbShpbnQgbCwgaW50IHIpIHsKICAgIHJldHVybiBsICsgcmQoKSAlIChyIC0gbCArIDEpOwp9Cgp2b2lkIGdlbihpbnQgaSkgewogICAgb2ZzdHJlYW0gY291dCgiZ2VuIiArIHRvX3N0cmluZyhpKSArICIuaW5wIik7CiNkZWZpbmUgTiAoaW50KTJlNQojZGVmaW5lIE1BWCAoaW50KTFlOAogICAgaW50IG4gPSByYW5kb20obWF4KDFsbCwgTiAtIDEwMCksIE4pLCBxID0gcmFuZG9tKG1heCgxbGwsIE4gLSAxMDApLCBOKTsKICAgIGNvdXQgPDwgbiA8PCAnXG4nOwogICAgRk9SKGksIDEsIG4pIHsKICAgICAgICBpbnQgbCA9IHJhbmRvbSgxZTQsIDllOCk7CiAgICAgICAgaW50IHIgPSByYW5kb20obCwgbCArIDFlOCk7CiAgICAgICAgY291dCA8PCBsIDw8ICcgJyA8PCByIDw8ICdcbic7CiAgICB9CiAgICBjb3V0IDw8IHEgPDwgJ1xuJzsKICAgIEZPUihpLCAxLCBxKSB7CiAgICAgICAgaW50IHQgPSByYW5kb20oMSwgMTApOwogICAgICAgIGlmICh0ID09IDEwKSB7IC8vIC0xCiAgICAgICAgICAgIGludCBhID0gcmFuZG9tKDEsIDFlOSk7CiAgICAgICAgICAgIGludCBiID0gcmFuZG9tKGEsIDFlOSk7CiAgICAgICAgICAgIGNvdXQgPDwgYSA8PCAnICcgPDwgYiA8PCAnXG4nOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGludCBhID0gcmFuZG9tKDFlNCwgOWU4KTsKICAgICAgICAgICAgaW50IGIgPSByYW5kb20oYSwgYSArIDFlOCk7CiAgICAgICAgICAgIGNvdXQgPDwgYSA8PCAnICcgPDwgYiA8PCAnXG4nOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQuY2xvc2UoKTsKfQp2b2lkIHByb2Nlc3Modm9pZCkgewogICAgRk9SKGksIDEsIDMwKSB7CiAgICAgICAgZ2VuKGkpOwogICAgfQp9CgpzaWduZWQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGlmIChmb3Blbih0YXNrIi5pbnAiLCAiciIpKSB7CiAgICAgICAgZnJlb3Blbih0YXNrIi5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKHRhc2siLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIGludCB0YyA9IDE7Ci8vICAgIGNpbiA+PiB0YzsKICAgIHdoaWxlKHRjLS0pIHsKICAgICAgICBwcm9jZXNzKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQoK