#include <bits/stdc++.h>
using namespace std;
const int N = 4e6 + 7;
long long odej[30][30];
long long dp[N];
int t[N], n;
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> t[i];
  }
  for (int kol = 1; kol <= 20; kol++) {
    int zm = 0;
    for (int i = n - 1; i >= 0; i--) {
      if (t[i] == kol)
        zm++;
      else
        odej[kol - 1][t[i] - 1] += zm;
    }
  }
  for (int i = 1; i < (1 << 20); i++) {
    dp[i] = 1e16;
    for (int j = 0; j < 20; j++) {
      if (i & (1 << j)) {
        long long zm = 0;
        for (int k = 0; k < 20; k++) {
          if (!(i & (1 << k))) zm += odej[j][k];
        }
        dp[i] = min(dp[i], dp[i - (1 << j)] + zm);
      }
    }
  }
  cout << dp[(1 << 20) - 1];
}
