#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
void manupulate(string &str) {
  for (long long int i = 0; i < str.size(); ++i) str[i] -= 48;
}
bool isprime(long long int n) {
  if (n <= 1) return false;
  for (long long int i = 2; i * i <= n; ++i)
    if (n % i == 0) return false;
  return true;
}
long long int expo(long long int a, long long int n) {
  if (n == 0) return 1;
  if (n == 1) return a;
  long long int tmp = expo(a, n / 2);
  tmp = (tmp * tmp) % (long)(1e9 + 7);
  if (n & 1) tmp = (tmp * a) % (long)(1e9 + 7);
  return tmp;
}
long long int give1(long long int x, long long int y) { return pow(x, y); }
long long int give(long long int x) { return pow(x, 10); }
long long int attack() {
  long long int n;
  cin >> n;
  ;
  if (n == 1) {
    cout << 15 << "\n";
    cout << 2 << " " << 0 << "\n";
    cout << 3 << " " << 0 << "\n";
    cout << 4 << " " << 0 << "\n";
    cout << 2 << " " << 1 << "\n";
    cout << 4 << " " << 1 << "\n";
    for (long long int i = 0; i < 5; ++i) cout << i << " " << 2 << "\n";
    cout << 0 << " " << 3 << "\n";
    cout << 2 << " " << 3 << "\n";
    cout << 0 << " " << 4 << "\n";
    cout << 1 << " " << 4 << "\n";
    cout << 2 << " " << 4 << "\n";
    return 0;
  }
  vector<pair<long long int, long long int> > ar;
  long long int a = n / 2, i;
  for (i = 1; i <= 3 * a; ++i) {
    ar.push_back({i, 3});
    ar.push_back({i, 0});
    if (i % 3 != 1) ar.push_back({i, 2}), ar.push_back({i, 4});
  }
  ar.push_back({0, 3});
  ar.push_back({i, 3});
  ar.push_back({i, 0});
  ar.push_back({i + 1, 3});
  ++i;
  for (long long int j = 0; j < 3; ++j)
    ar.push_back({0, j}), ar.push_back({i, j});
  if (n & 1) {
    ar.push_back({i + 1, 3});
    ar.push_back({i + 2, 3});
    ar.push_back({i, 4});
    ar.push_back({i, 5});
    ar.push_back({i + 2, 4});
    ar.push_back({i + 1, 5});
    ar.push_back({i + 2, 5});
  }
  cout << ar.size() << "\n";
  for (auto x : ar) cout << x.first << " " << x.second << "\n";
  return 0;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  attack();
  return 0;
}
