#include <bits/stdc++.h>
using namespace std;
int a[5] = {0}, ans;
bool solve() {
  ans = 0;
  if (a[1] >= a[2]) {
    ans += a[2];
    a[3] += a[2];
    a[1] -= a[2];
    a[2] = 0;
    if (a[1] == 0) return true;
    ans += a[1] / 3 * 2;
    a[3] += a[1] / 3;
    a[1] %= 3;
    if (a[3] >= a[1]) {
      ans += a[1];
      return true;
    }
    if (a[1] == 0) return true;
    if (a[1] == 1) {
      if (a[3] >= 1) {
        ans += 1;
        return true;
      }
      if (a[4] >= 2) {
        ans += 2;
        return true;
      }
      return false;
    } else {
      if (a[4] >= 1) {
        ans += 2;
        return true;
      }
      if (a[3] >= 2) {
        ans += 2;
        return true;
      }
      return false;
    }
  } else {
    ans += a[1];
    a[2] -= a[1];
    a[3] += a[1];
    if (a[2] == 0) return true;
    ans += a[2] * 2 / 3;
    a[3] += a[2] * 2 / 3;
    a[1] = a[2] * 2 % 3;
    if (a[1] == 0) return true;
    if (a[1] == 1) {
      if (a[3] >= 1) {
        ans += 1;
        return true;
      }
      if (a[4] >= 2) {
        ans += 2;
        return true;
      }
      return false;
    } else {
      if (a[4] >= 1) {
        ans += 1;
        return true;
      }
      if (a[3] >= 2) {
        ans += 2;
        return true;
      }
      return false;
    }
  }
  return false;
}
int main() {
  int n, s = 0;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    int x;
    scanf("%d", &x);
    a[x]++;
    s += x;
  }
  if (s < 3 || !solve())
    puts("-1");
  else
    printf("%d\n", ans);
  return 0;
}
