#include <bits/stdc++.h>
#define nmax 30005
using namespace std;
int n,aib[nmax];
inline void Update(int p,int x)
{
while(p<=n)
{
aib[p]+=x;
p+=(p&(-p));
}
}
inline int Query(int p)
{
int val=0;
while(p>0)
{
val+=aib[p];
p-=(p&(-p));
}
return val;
}
inline int Bin_Search(int x,int st,int dr)
{
int sol=1,inter,mij,q;
q=Query(st-1);
while(st<=dr)
{
mij=(st+dr)/2;
inter=Query(mij)-q;
if(inter==x)
{
sol=mij;
dr=mij-1;
}
else if(inter>x) dr=mij-1;
else st=mij+1;
}
return sol;
}
int main()
{
int i,sol,aux,k;
int poz=1,t;
ifstream fin("order.in");
ofstream fout("order.out");
fin>>n;
for(i=1;i<=n;i++)
Update(i,1);
for(i=1;i<=n;i++)
{
sol=Query(n)-Query(poz);
if(sol>=i)
{
t=Bin_Search(i,poz+1,n);
fout<<t<<" ";
poz=t;
Update(poz,-1);
}
else
{
aux=i-sol;
k=aux%(n-i+1);
if(k==0) k=n-i+1;
aux=Bin_Search(k,1,n);
fout<<aux<<" ";
poz=aux;
Update(poz,-1);
}
}
return 0;
}