#include <bits/stdc++.h>
using namespace std;
long long i, s, j;
double z, z2;
double R[302], R2[302];
long long X[302], P[302], S[302];
bool B[1000001];
int main() {
  P[0] = 500000;
  for (i = 1; i < 302; i++) {
    P[i] = 302 - 1 - i;
    X[i] = P[0] + 2 * accumulate(P + 1, P + i, 0) + P[i];
  }
  X[302 - 1] = 1000000;
  P[302 - 1] = 1000000;
  for (i = 0; i < 302; i++) {
    R[i] = P[i];
    for (j = 0; j < min(s, 300ll); j++)
      R[i] = min(R[i], (X[i] - X[S[s - 1 - j]]) * (X[i] - X[S[s - 1 - j]]) /
                           (4 * R[S[s - 1 - j]]));
    while (s && R[S[s - 1]] - 1e-10 < R[i]) s--;
    S[s++] = i;
    z += R[i];
    R2[i] = P[i];
    for (j = 0; j < i; j++)
      R2[i] = min(R2[i], (X[i] - X[j]) * (X[i] - X[j]) / (4 * R2[j]));
    z2 += R2[i];
  }
  cout << 302 << "\n";
  for (i = 0; i < 302; i++) cout << X[i] << " " << P[i] << "\n";
  return 0;
}
