#include <bits/stdc++.h>
using namespace std;
void solve() {
  cout << 7 << endl;
  cout << 2 << " " << 1 << endl;
  cout << 3 << " " << 1 << endl;
  cout << 1 << " " << 2 << endl;
  cout << 2 << " " << 2 << endl;
  cout << 3 << " " << 2 << endl;
  cout << 1 << " " << 3 << endl;
  cout << 2 << " " << 3 << endl;
  return;
}
int main() {
  int n, last, first = 10, a, b;
  cin >> n;
  if (n == 1) {
    solve();
    return 0;
  }
  vector<pair<int, int> > v;
  v.push_back(make_pair(10, 10));
  for (int i = 0; i < n / 2; i++) {
    int x = 10 + 3 * i;
    int y = 10;
    v.push_back(make_pair(x + 1, y));
    v.push_back(make_pair(x + 2, y));
    v.push_back(make_pair(x + 3, y));
    v.push_back(make_pair(x + 1, y + 1));
    v.push_back(make_pair(x + 1, y - 1));
    v.push_back(make_pair(x + 2, y + 1));
    v.push_back(make_pair(x + 2, y - 1));
    last = x + 3;
  }
  last++;
  first--;
  a = last, b = 10;
  v.push_back(make_pair(last, 10));
  v.push_back(make_pair(first, 10));
  v.push_back(make_pair(last, 11));
  v.push_back(make_pair(first, 11));
  v.push_back(make_pair(last, 12));
  v.push_back(make_pair(first, 12));
  v.push_back(make_pair(last, 13));
  v.push_back(make_pair(first, 13));
  first++;
  last--;
  while (first <= last) {
    v.push_back(make_pair(first, 13));
    first++;
    if (first > last) break;
    v.push_back(make_pair(last, 13));
    last--;
  }
  if (n % 2) {
    v.push_back(make_pair(a + 1, b));
    v.push_back(make_pair(a, b - 1));
    v.push_back(make_pair(a + 1, b - 1));
  }
  cout << v.size() << endl;
  for (int i = 0; i < v.size(); i++)
    cout << v[i].first << " " << v[i].second << endl;
}
