#include <bits/stdc++.h>
using namespace std;
const int N = 1e5;
const long long INT = 1e9;
const long long LONG = 1e18;
const long long mod = 1e9 + 7;
map<int, int> mp, mpk;
set<int> s;
int ans;
int main() {
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    int a;
    cin >> a;
    s.insert(a);
    mp[a]++;
    if (mp[a] == 1)
      mpk[1]++;
    else {
      mpk[mp[a] - 1]--;
      mpk[mp[a]]++;
    }
    if ((i - 1) % s.size() == 0) {
      int x = (i - 1) / s.size();
      if (mpk[x] == s.size() - 1) ans = i;
    }
    if (s.size() == 1) continue;
    if ((i - 1) % (s.size() - 1) == 0) {
      int x = (i - 1) / (s.size() - 1);
      if (mpk[x] >= s.size() - 1) ans = i;
    }
  }
  cout << ans;
}
