#include <bits/stdc++.h>
using namespace std;
int A[5];
int main() {
  int n, a, z, t = 0;
  scanf("%d", &n);
  while (n--) {
    scanf("%d", &a);
    A[a]++;
    t += a;
  }
  if (t == 2 || t == 1 || t == 5) {
    printf("-1\n");
    return 0;
  }
  int ans = 0;
  z = min(A[1], A[2]);
  ans += z, A[1] -= z, A[2] -= z, A[3] += z;
  if (A[1]) {
    ans += 2 * (A[1] / 3), A[3] += A[1] / 3, A[1] = A[1] % 3;
    if (A[3] >= A[1]) {
      ans += A[1], A[3] -= A[1], A[1] -= A[1];
    }
    if (A[1]) {
      if (A[1] == 1 && A[3])
        ans++;
      else
        ans += 2;
    }
  }
  if (A[2]) {
    ans += 2 * (A[2] / 3);
    A[2] %= 3;
    if (A[2])
      if ((A[2] == 1) && A[4])
        ans++;
      else
        ans += 2;
  }
  cout << ans << endl;
  return 0;
}
