#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <ctime>
#include <cmath>
#define int long long
using namespace std;
using namespace std;
const int N = 1010;
int a[N], n;
int path[N], p[N];
int res = 0;
void copy()
{
for (int i = 1; i <= n; i ++ ) path[i] = p[i];
}
int calc()
{
p[0] = p[n], p[n + 1] = p[1];
int cnt = 0;
for (int i = 1; i <= n; i ++ )
cnt += p[i] * a[p[i - 1]] * a[p[i]] * a[p[i + 1]];
if (cnt > res) res = cnt, copy();
return cnt;
}
void sumilate_anneal()
{
for (double t = 1e4; t >= 1e-4; t *= 0.999)
{
int x = calc();
int a = rand() % n + 1, b = rand() % n + 1;
swap(p[a], p[b]);
int y = calc();
int delta = y - x;
if (exp(delta / t) < (double)rand() / RAND_MAX) swap(p[a], p[b]);
}
}
signed main()
{
srand(time(0));
scanf("%lld", &n);
for (int i = 1; i <= n; i ++ ) scanf("%lld", &a[i]);
for (int i = 1; i <= n; i ++ ) p[i] = i;
while ((double)clock() / CLOCKS_PER_SEC < 0.98)
{
random_shuffle(p + 1, p + n + 1);
sumilate_anneal();
}
for (int i = 1; i <= n; i ++ )
printf("%lld ", path[i]);
return 0;
}