#include <iostream>

using namespace std;
using ll = long long;
template<class T> void SO(T& ve){sort(ve.begin(),ve.end());}
template<class T> void REV(T& ve){reverse(ve.begin(),ve.end());}
//atcoder 0,19,3,14,4,5,17  -96
ll ceil(double x);
ll gcd(ll a, ll b);
int main(){
cin.tie(0);
ll n;
cin>>n;
for(ll i=1;i<=n;i++){
  cout<<ceil(double(i-0)/2)<<" "<<n-int((n-i)/2)<<endl;
}
  return 0;
}

ll ceil(double x){
  //cout<<"double:"<<x<<"ll:"<<ll(x)<<endl;
  if(x==ll(x))return ll(x);
  else return ll(x)+1;
}
#include <bits/stdc++.h>
int n;
int main(){
	scanf("%d",&n);
	for (int i=0;i<n;i++)
		printf("%d %d\n",(i*2)%n+1,(i*2+1)%n+1);
}