#include <bits/stdc++.h>
int a[100010];
int b[100010];
int main() {
  memset(a, 0, sizeof(a));
  memset(b, 0, sizeof(b));
  int _max = 0;
  int n;
  scanf("%d", &n);
  int ret = 0;
  for (int i = 0; i < n; i++) {
    int x;
    scanf("%d", &x);
    a[x]++;
    b[a[x]]++;
    if (a[x] != 1) {
      b[a[x] - 1]--;
    }
    if (_max < a[x]) {
      _max = a[x];
    }
    if (i + 1 == b[1]) {
      ret = i + 1;
    }
    if (b[1] == 1 && i + 1 == 1 + b[_max] * _max) {
      ret = i + 1;
    }
    if (b[_max] == 1 && i + 1 == b[_max - 1] * (_max - 1) + _max) {
      ret = i + 1;
    }
  }
  printf("%d\n", ret);
  return 0;
}
