#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using vll = vector<ll>;
using mll = map<ll, ll>;
using pll = pair<ll, ll>;
using vii = vector<int>;
using mii = map<int, int>;
using pii = pair<int, int>;
const int sz = 200000;
const ll MOD = 1000000007;
ll To_int(string str) {
  stringstream ss(str);
  ll x = 0;
  ss >> x;
  return x;
}
string To_string(ll x) {
  stringstream ss;
  ss << x;
  string str = ss.str();
  return str;
}
bool vowel_up(char c) {
  return c == 'A' || c == 'E' || c == 'I' || c == 'U' || c == 'O' || c == 'Y';
}
bool vowel_low(char c) {
  return c == 'a' || c == 'e' || c == 'i' || c == 'u' || c == 'o' || c == 'y';
}
template <typename T>
T lcm(T a, T b) {
  if (a < 0) return lcm(-a, b);
  if (b < 0) return lcm(a, -b);
  return a * (b / gcd(a, b));
}
template <typename T>
T gcd(T a, T b) {
  if (a < 0) return gcd(-a, b);
  if (b < 0) return gcd(a, -b);
  return (b == 0) ? a : gcd(b, a % b);
}
vector<pii> vp;
void solve() {
  int k;
  cin >> k;
  vp.emplace_back(0, 0);
  vp.emplace_back(0, 1);
  vp.emplace_back(1, 0);
  vp.emplace_back(1, 1);
  int x = 1, y = 1;
  while (k--) {
    vp.emplace_back(x, y + 1);
    vp.emplace_back(x + 1, y + 1);
    vp.emplace_back(x + 1, y);
    x++;
    y++;
  }
  cout << vp.size() << "\n";
  for (auto it : vp) cout << it.first << " " << it.second << "\n";
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  solve();
  return 0;
}
