#include <bits/stdc++.h>
long long read() {
  long long res = 0, flag = 1;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') flag = -1;
    ch = getchar();
  }
  while (isdigit(ch)) res = res * 10 + ch - 48, ch = getchar();
  return res * flag;
}
void print(long long x) {
  if (x < 0) putchar('-'), x = -x;
  if (x > 9) print(x / 10);
  putchar(x % 10 + 48);
}
struct Edge {
  long long v, w;
  Edge() {}
  Edge(long long v, long long w) : v(v), w(w) {}
};
long long n, ans = 0;
void solution() {
  n = read();
  for (long long i = (1); i <= (n); ++i) {
    switch (i % 3) {
      case 0:
        print(ans + 1), putchar(' '), print(3), putchar('\n');
        ans += 2;
        break;
      case 1:
        print(ans), putchar(' '), print(0), putchar('\n');
        break;
      case 2:
        print(ans + 1), putchar(' '), print(0), putchar('\n');
        break;
      default:
        break;
    }
  }
}
signed main() {
  42;
  solution();
}
