#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/stack:200000000")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
bool sortbysecond(const pair<long long, long long> &a,
                  const pair<long long, long long> &b) {
  return (a.second < b.second);
}
template <typename T>
istream &operator>>(istream &in, vector<T> &vec) {
  for (auto &x : vec) {
    in >> x;
  }
  return in;
}
void solve() {
  long long n;
  cin >> n;
  vector<pair<long long, long long>> v;
  v.push_back({0, 0});
  v.push_back({0, 1});
  v.push_back({1, 0});
  v.push_back({1, 1});
  while (n--) {
    long long x = v.back().first;
    long long y = v.back().second;
    v.push_back({x, y + 1});
    v.push_back({x + 1, y});
    v.push_back({x + 1, y + 1});
  }
  cout << v.size() << endl;
  for (auto x : v) cout << x.first << " " << x.second << endl;
}
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long t = 1;
  while (t--) solve();
  return 0;
}
