/*
* @problem: random
*/
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <limits.h>
#include <vector>
#include <map>
#include <bitset>
#include <string>
#include <iterator>
#include <set>
#include <utility>
#include <queue>
#include <numeric>
#include <functional>
#include <ctype.h>
#include <stack>
#include <algorithm>
#include <cstdlib>
#define MAX 100100
#define mod 1000000001LL
#define bitcnt(x) __builtin_popcount(x)
#define MS0(x) memset(x, 0, sizeof(x))
#define MS1(x) memset(x, -1, sizeof(x))
#define ll long long int
#define mp(x, y) make_pair(x, y)
#define pii pair<int, int>
#define pll pair<ll, ll>
#define in(x) scanf("%lld", &x)
#define ind(x) scanf("%d", &x)
#define ins(x) scanf("%s", x)
#define pr(x) printf("%lld\n", x)
#define prd(x) printf("%d\n", x)
#define prs(x) printf("%s\n", x)
#define pi acos(-1.0)
#define ff first
#define ss second
using namespace std;
int random(int l, int r) {
int tmp = rand() % (r - l + 1);
return tmp + l;
}
int main()
{
freopen("input.txt", "w", stdout);
//freopen("output.txt", "w", stdout);
srand(time(NULL));
int t = 100;
cout << t << endl;
while (t--) {
int n = random(1, 100);
int m = random(0, n * n);
int d = random(1, n);
int D = random(d, n);
cout << n << " " << m << " " << d << " " << D << endl;
}
return 0;
}
LyoKKiBAcHJvYmxlbTogcmFuZG9tCiovCgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxjc3RyaW5nPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxsaW1pdHMuaD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPGJpdHNldD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8bnVtZXJpYz4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxjdHlwZS5oPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxjc3RkbGliPgojZGVmaW5lIE1BWCAxMDAxMDAKI2RlZmluZSBtb2QgMTAwMDAwMDAwMUxMCiNkZWZpbmUgYml0Y250KHgpIF9fYnVpbHRpbl9wb3Bjb3VudCh4KQojZGVmaW5lIE1TMCh4KSBtZW1zZXQoeCwgMCwgc2l6ZW9mKHgpKQojZGVmaW5lIE1TMSh4KSBtZW1zZXQoeCwgLTEsIHNpemVvZih4KSkKI2RlZmluZSBsbCBsb25nIGxvbmcgaW50CiNkZWZpbmUgbXAoeCwgeSkgbWFrZV9wYWlyKHgsIHkpCiNkZWZpbmUgcGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgcGxsIHBhaXI8bGwsIGxsPgojZGVmaW5lIGluKHgpIHNjYW5mKCIlbGxkIiwgJngpCiNkZWZpbmUgaW5kKHgpIHNjYW5mKCIlZCIsICZ4KQojZGVmaW5lIGlucyh4KSBzY2FuZigiJXMiLCB4KQojZGVmaW5lIHByKHgpIHByaW50ZigiJWxsZFxuIiwgeCkKI2RlZmluZSBwcmQoeCkgcHJpbnRmKCIlZFxuIiwgeCkKI2RlZmluZSBwcnMoeCkgcHJpbnRmKCIlc1xuIiwgeCkKI2RlZmluZSBwaSBhY29zKC0xLjApCiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCByYW5kb20oaW50IGwsIGludCByKSB7CiAgICBpbnQgdG1wID0gcmFuZCgpICUgKHIgLSBsICsgMSk7CiAgICByZXR1cm4gdG1wICsgbDsKfQoKaW50IG1haW4oKQp7CiAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCAidyIsIHN0ZG91dCk7CiAgICAvL2ZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsIHN0ZG91dCk7CiAgICBzcmFuZCh0aW1lKE5VTEwpKTsKICAgIGludCB0ID0gMTAwOwogICAgY291dCA8PCB0IDw8IGVuZGw7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgaW50IG4gPSByYW5kb20oMSwgMTAwKTsKICAgICAgICBpbnQgbSA9IHJhbmRvbSgwLCBuICogbik7CiAgICAgICAgaW50IGQgPSByYW5kb20oMSwgbik7CiAgICAgICAgaW50IEQgPSByYW5kb20oZCwgbik7CiAgICAgICAgY291dCA8PCBuIDw8ICIgIiA8PCBtIDw8ICIgIiA8PCBkIDw8ICIgIiA8PCBEIDw8IGVuZGw7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=