#include <bits/stdc++.h>
#pragma comment(linker, "/stack:128000000")
using namespace std;
const int INF = 1000000000;
const long long LINF = 4000000000000000000LL;
const double eps = 1e-9;
void prepare() {}
int n;
int x[505], p[505];
vector<double> radius;
vector<int> s;
bool read() { return false; }
double sqr(double x) { return x * x; }
void relax(int i, int j) {
  int t = s[j];
  double nr = sqr(x[i] - x[t]) / (4.0 * radius[t]);
  radius[i] = min(radius[i], nr);
}
double solve2() {
  radius.clear();
  s.clear();
  double sum = 0;
  for (int i = 0; i < n; i++) {
    radius.push_back(p[i]);
    for (int j = 0; j < (int)(s).size(); j++) relax(i, (int)(s).size() - j - 1);
    while (!s.empty() && radius[s.back()] <= radius[i] + eps) s.pop_back();
    s.push_back(i);
    sum += radius[i];
  }
  return sum;
}
void gen() {
  radius.clear();
  s.clear();
  memset((x), (0), sizeof(x));
  n = 302;
  p[0] = 1000000;
  x[0] = -34642;
  for (int i = 1; i < n; i++) p[i] = 300;
  p[n - 1] = 1000000;
  for (int i = 0; i < n; i++) {
    if (i > 1) x[i] = (int)(x[i - 1] + radius[i - 1] * 2) - 1;
    if (i == n - 1) x[i] = 1000000 + x[0];
    radius.push_back(p[i]);
    for (int j = 0; j < min((int)(s).size(), 300); j++)
      relax(i, (int)(s).size() - j - 1);
    while (!s.empty() && radius[s.back()] <= radius[i] + eps) s.pop_back();
    s.push_back(i);
  }
  for (int i = n - 1; i >= 0; i--) x[i] -= x[0];
}
void solve() {
  radius.clear();
  s.clear();
  double sum = 0;
  for (int i = 0; i < n; i++) {
    radius.push_back(p[i]);
    for (int j = 0; j < min((int)(s).size(), 300); j++)
      relax(i, (int)(s).size() - j - 1);
    while (!s.empty() && radius[s.back()] <= radius[i] + eps) s.pop_back();
    s.push_back(i);
    sum += radius[i];
  }
  printf("%.10lf\n", sum);
  double z = solve2();
  if (fabs(sum - z) > eps) {
    printf("BINGO!\n");
    exit(0);
  }
}
void print() {
  printf("%d\n", n);
  for (int i = 0; i < n; i++) printf("%d %d\n", x[i], p[i]);
}
int main() {
  prepare();
  int ntests = 1;
  for (int i = (0); i < (((ntests))); i++) {
    read();
    gen();
    print();
  }
  return 0;
}
