#include <bits/stdc++.h>
using namespace std;
const int maxn = 1 << 20;
long long a[maxn];
long long dp[maxn];
long long cnt[22][22], tot[22];
int n;
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%lld", &a[i]);
    a[i]--;
    for (int j = 0; j < 20; j++) {
      cnt[a[i]][j] += tot[j];
    }
    tot[a[i]]++;
  }
  memset(dp, 0x3f, sizeof dp);
  dp[0] = 0;
  for (int i = 0; i < maxn; i++)
    for (int j = 0; j < 20; j++) {
      long long sum = 0;
      if ((i >> j & 1) == 0) {
        for (int k = 0; k < 20; k++) {
          if ((i >> k) & 1 == 1) {
            sum = sum + cnt[j][k];
          }
        }
        dp[i ^ (1 << j)] = min(dp[i ^ (1 << j)], dp[i] + sum);
      }
    }
  cout << dp[maxn - 1];
  return 0;
}
