#include <bits/stdc++.h>
using namespace std;
const int maxn = 100005;
int n;
int store1[maxn], store2[maxn], tail1, tail2;
int visit[maxn], store[maxn];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) scanf("%d", &store[i]);
  for (int i = 1; i <= n; ++i) {
    if (visit[store[i]] > 0) continue;
    visit[store[i]] = 1;
    store1[tail1++] = i;
  }
  memset(visit, 0, sizeof(visit));
  for (int i = n; i >= 0; --i) {
    if (visit[store[i]] > 0) continue;
    visit[store[i]] = 1;
    store2[tail2++] = i;
  }
  sort(store2, store2 + tail2);
  long long ans = 0;
  for (int i = 0; i < tail1; ++i) {
    int temp = store1[i];
    long long rht = upper_bound(store2, store2 + tail2, temp) - store2;
    rht = tail2 - rht;
    ans += rht;
  }
  printf("%lld\n", ans);
  return 0;
}
