#include <cstring>
#include <queue>
#include <iostream>
#include <cstdio>
using namespace std;
const int N=100001;
int dis[2*N], *dis2;
int n;
const int inf = 522133279;
const int P1 = 998244353, P2 = 1000000007;
const int K1 = 0, K2 = 13;
struct H {
int h1, h2, l;
H(bool b = false) {
h1 = b + K1;
h2 = b + K2;
l = 1;
}
}h[N];
int init(int x, int y){
memset(dis, 0x1f, sizeof dis);
return (x & y) ^ ((x ^ y) | (~x & y));
}
void recursion(int d, int p, int f, int* arr, priority_queue<pair<int, int>> &q){
int pivot = arr[0];
if(p < n) recursion(d, p + n, dis[p] + n, arr + n, q);
else recursion(d + n, p, dis2[p] - n, arr, q);
}
int main(){
priority_queue<pair<int, int> > q;
cin >> n;
dis2 = dis+n;
for (int i = 0;i < n; ++ i){
cin >> dis[i];
}
if(n <= 20){
recursion(n, n+n, n, dis2, q);
}
printf("%d%c", dis[0]%n+1, " \n"[dis2[0] == dis[0]+n]);
}