#include <bits/stdc++.h>
using namespace std;
ifstream in("order.in");
ofstream out("order.out");
int n,aib[30105],poz=1;
int query(int p);
void update(int p,int x);
int cautbin(int st, int dr, int turn)
{
int fin=0,mij,detriment=query(st);
while (st<=dr)
{
mij=(st+dr)/2;
if (query(mij)-detriment<turn)st=mij+1;
else
{
fin=mij;
dr=mij-1;
}
}
return fin;
}
void solve(int turn)
{int aux=n-turn+1;
int dr=aux-query(poz);
if (dr>turn)
{
poz=cautbin(poz,n,turn);
out<<poz<<" ";
update(poz,-1);
}
else
{
turn-=dr;
if (turn>aux)turn=turn%aux;
poz=cautbin(0,n,turn);
out<<poz<<" ";
update (poz,-1);
}
}
void update(int p,int x)
{
for (;p<=n;p+=(p&(-p)))
aib[p]+=x;
}
int query(int p)
{
int s=0;
for (;p>0;p-=(p&(-p)))
s+=aib[p];
return s;
}
int main()
{int i;
in>>n;
for (i=1;i<=n;i++)update(i,1);
for (i=1;i<n;i++) solve(i);
out<<cautbin(0,n,1)<<"\n";
out.close();
in.close();
return 0;
}