#include <bits/stdc++.h>
using namespace std;
int fn(int threes, int forth);
const int inf = 99999999;
int n, sum, arr[10];
int main() {
  sum = 0;
  memset(arr, 0, sizeof(arr));
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    int x;
    scanf("%d", &x);
    sum += x;
    arr[x]++;
  }
  int ans = inf;
  for (int i = 0; i <= sum / 4; i++) {
    int forth = i;
    int threes = (sum - 4 * forth) / 3;
    ans = min(ans, fn(threes, forth));
  }
  printf("%d\n", ans == inf ? -1 : ans);
  return 0;
}
int fn(int threes, int forth) {
  if (forth * 4 + threes * 3 != sum) return inf;
  int ret = 0;
  int subArr[10];
  for (int i = 1; i <= 4; i++) subArr[i] = arr[i];
  int bases = 0;
  if (subArr[4] > forth) {
    subArr[1] += subArr[4] - forth;
    subArr[3] += subArr[4] - forth;
    bases += forth;
  } else
    bases += subArr[4];
  for (int i = 3; i >= 1; i--) {
    int left = (forth + threes) - bases;
    bases += min(left, subArr[i]);
    if (left < subArr[i]) ret += (subArr[i] - left) * i;
  }
  return ret;
}
