#include <bits/stdc++.h>
using namespace std;
int s[100000], n;
double rad[100000], xx[100000], p[100000];
void generate() {
  n = 302;
  xx[0] = 1;
  p[0] = 1000000;
  for (int i = 1; i < n; i++) {
    p[i] = n - i;
    xx[i] = xx[i - 1] + p[i];
    bool ok = false;
    while (!ok) {
      ok = true;
      for (int j = 0, _n = i; j < _n; j++)
        if (((xx[i] - xx[j]) * (xx[i] - xx[j]) / (4 * p[j])) < p[i]) {
          ok = false;
          break;
        }
      xx[i]++;
    }
  }
  p[n] = 1000000;
  xx[n] = xx[n - 1] + p[n - 1];
  bool ok = false;
  while (!ok) {
    ok = true;
    for (int j = 1, _n = n; j < _n; j++)
      if (((xx[n] - xx[j]) * (xx[n] - xx[j]) / (4 * p[j])) < p[n]) {
        ok = false;
        break;
      }
    xx[n]++;
  }
  cout << n + 1 << "\n";
  cout << 1 << " 1000000\n";
  for (int i = 1, _n = n; i < _n; i++) cout << xx[i] << " " << p[i] << "\n";
  cout << xx[n] << " 1000000"
       << "\n";
}
void relax(int i, int j) {
  rad[i] = min(rad[i], (xx[i] - xx[j]) * (xx[i] - xx[j]) / (4 * rad[s[j]]));
}
double srad[100000];
double solve() {
  srad[0] = p[0];
  double sum = 0.0;
  for (int i = 0, _n = n; i < _n; i++) {
    srad[i] = p[i];
    for (int j = i - 1; j >= 0; j--)
      srad[i] = min(srad[i], (xx[i] - xx[j]) * (xx[i] - xx[j]) / (4 * srad[j]));
    sum += srad[i];
  }
  cout << sum << "\n";
}
int main() {
  generate();
  return 0;
}
