#include<iostream>
using namespace std;
int main()
{
int n;
scanf("%d", &n);
if (n == 1)printf("1\n1 1\n");
else if (n == 2) {
printf("4\n");
for (int i = 1; i <= 2; i++) {
for (int j = 1; j <= 2; j++)printf("%d %d\n", i, j);
}
}
else if (n == 3) {
printf("4\n");
printf("1 2\n2 1\n2 3\n3 2\n");
}
else if (n == 4) {
printf("5\n");
printf("2 2\n2 4\n3 3\n4 2\n4 4\n");
}
else if (n == 5)printf("5\n1 3\n2 2\n2 4\n3 1\n4 4\n");
else if (n == 6) {
printf("6\n");
printf("2 6\n4 2\n4 6\n5 3\n6 4\n6 6\n");
}
else if (n == 7)printf("7\n4 2\n4 4\n4 6\n5 5\n6 4\n6 6\n7 3\n");
else if (n == 8)printf("8\n4 7\n5 2\n6 3\n6 5\n7 4\n8 3\n8 5\n8 7\n");
else if (n == 9)printf("9\n6 2\n6 4\n6 6\n6 8\n7 5\n8 4\n8 6\n9 3\n9 7\n");
else if (n == 10)printf("10\n1 1\n1 2\n2 1\n2 2\n3 3\n4 4\n7 7\n8 8\n9 9\n10 10\n");
else {
bool flag = false;//n为奇数
if (n % 2 == 0)
{
flag = true;
n--;
}
int ans = 0;
if ((n - 1) % 6 == 0)
{
int t = (n - 1) / 6;
ans = (t + 1) * 2 * 2 + flag;//偶数加一
printf("%d\n", ans);
printf("%d %d\n", 1, 1);
for (int i = 1; i <= t; i++)
printf("%d %d\n", 1, 2 * i + 1);
printf("%d %d\n", 1, n);
for (int i = 1; i <= t; i++)
printf("%d %d\n", 1, n - 2 * i);
//下半部
for (int i = 1; i <= t; i++)
printf("%d %d\n", 2 * i + 1, 1);
printf("%d %d\n", n, 1);
for (int i = 1; i <= t; i++)
printf("%d %d\n", n - 2 * i, 1);
printf("%d %d\n", n, n);
if (flag == true)
printf("%d %d\n", n + 1, n + 1);
}
else
{
int t = (n - 1) / 6;
ans = (t + 1) * 2 * 2 + 2 + flag;//偶数加一
printf("%d\n", ans);
printf("%d %d\n", 1, 1);
for (int i = 1; i <= t; i++)
printf("%d %d\n", 1, 2 * i + 1);
printf("%d %d\n", 1, 2 * t + 3);//多一个
printf("%d %d\n", 1, n);
for (int i = 1; i <= t; i++)
printf("%d %d\n", 1, n - 2 * i);
//下半部
for (int i = 1; i <= t; i++)
printf("%d %d\n", 2 * i + 1, 1);
printf("%d %d\n", 2 * t + 3, 1);//多一个
printf("%d %d\n", n, 1);
for (int i = 1; i <= t; i++)
printf("%d %d\n", n - 2 * i, 1);
printf("%d %d\n", n, n);
if (flag == true)
printf("%d %d\n", n + 1, n + 1);
}
}
}