#include <bits/stdc++.h>
using namespace std;
int n;
struct Node{
int v;
Node *next;
Node *prev;
}a[50001];
int main(){
scanf ("%d", &n);
for (int i = 1; i <= n; i++) {
a[i].v = i;
if (i == n)
a[i].next = &a[1];
else
a[i].next = &a[i + 1];
if (i == 1)
a[i].prev = &a[n];
else
a[i].prev = &a[i - 1];
}
Node *p = &a[n];
int x = 0, t = 1;
while (x * x <= t) {
p = p->next;
++x;
if (x == t * t) {
printf("%d ", p->v);
if (p->next == p)
break;
else {
Node *l = p->prev, *r = p->next;
l->next = r; r->prev = l;
p->next = p->prev = NULL;
x = 0;
p = l;
}
t++;
}
}
return 0;
}