#include<bits/stdc++.h>
using namespace std;
int a[100007];
int cnt[100007];
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
int ans=1;
set<int>s,num;//数字出现的次数,数字
map<int,int>vis;//记录数字出现的次数的个数
cnt[a[1]]++;
s.insert(cnt[a[1]]);
num.insert(a[1]);
vis[cnt[a[1]]]++;
for(int i=2;i<=n;++i){
vis[cnt[a[i]]]--;
if(!vis[cnt[a[i]]])
s.erase(s.find(cnt[a[i]]));
cnt[a[i]]++;
vis[cnt[a[i]]]++;
s.insert(cnt[a[i]]);
num.insert(a[i]);
if(s.size()==2){
if(*s.rbegin()-*s.begin()==1&&vis[*s.rbegin()]==1||*s.begin()==1&&vis[1]==1)//有一个数字多出现了一次或者有一个数字只出现了一次
ans=i;
}
else if(s.size()==1&&(num.size()==1||*s.begin()==1))//只有一个数字或者都只出现了一次
ans=i;
}
printf("%d",ans);
return 0;
}