#include <bits/stdc++.h>
using namespace std;
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int n;
  cin >> n;
  vector<pair<int, int>> ans;
  int counter = 0;
  if (n == 1) {
    cout << 0 << ' ' << 0 << endl;
    return 0;
  }
  int t = (n + 6) / 6;
  for (int i = 0; i < t; i++) {
    ans.push_back({2 * i, 0});
    if (i > 0) {
      ans.push_back({0, 2 * i});
    } else {
      ans.push_back({0, 2 * t});
    }
  }
  t--;
  for (int i = 0; i < t; i++) {
    ans.push_back({2 * i + 1, 1});
    if (i > 0) {
      ans.push_back({1, 2 * i + 1});
    } else {
      ans.push_back({1, 2 * t + 1});
    }
  }
  t--;
  for (int i = 0; i < t; ++i) {
    ans.push_back({2 * i + 2, 2});
    if (i > 0) {
      ans.push_back({2, 2 * i + 2});
    } else {
      ans.push_back({2, 2 * t + 2});
    }
  }
  t += 2;
  if (ans.size() < n) {
    ans.push_back({2 * t - 1, 1});
  }
  if (ans.size() < n) {
    ans.push_back({2 * t, 0});
  }
  if (ans.size() < n) {
    ans.push_back({2 * t - 2, 2});
  }
  if (ans.size() < n) {
    ans.push_back({2 * t, 2});
  }
  if (ans.size() < n) {
    ans.push_back({2 * t - 1, 3});
  }
  for (auto i : ans) {
    cout << i.first + 1 << ' ' << i.second + 1 << endl;
  }
  assert(ans.size() == n);
  return 0;
}
