#include <bits/stdc++.h>
using namespace std;
int main(void) {
  int cnt[5] = {0};
  int n = 0;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    int x = 0;
    scanf("%d", &x);
    cnt[x]++;
  }
  bool fail = false;
  int ans = 0;
  while (cnt[1]) {
    if (cnt[2] > 0) {
      cnt[2]--;
      cnt[1]--;
      cnt[3]++;
      ans++;
    } else if (cnt[1] >= 3) {
      cnt[2]++;
      cnt[1] -= 2;
      ans++;
    } else if (cnt[1] <= cnt[3]) {
      cnt[3] -= cnt[1];
      cnt[4] += cnt[1];
      ans += cnt[1];
      cnt[1] = 0;
    } else if (cnt[1] >= 2) {
      cnt[2]++;
      cnt[1] = 0;
      ans++;
    } else if (cnt[1] == 1) {
      if (cnt[4] < 2) {
        fail = true;
        break;
      }
      cnt[4] -= 2;
      cnt[1] = 0;
      cnt[3] += 2 + 1;
      ans += 2;
    }
  }
  while (cnt[2]) {
    if (cnt[2] >= 3) {
      cnt[2] -= 3;
      cnt[3] += 3;
      ans += 2;
    } else if (cnt[2] == 2) {
      cnt[4]++;
      cnt[2] -= 2;
      ans += 2;
    } else if (cnt[4]) {
      cnt[4]--;
      cnt[2]--;
      cnt[3] += 1 + 1;
      ans++;
    } else if (cnt[3] < 2) {
      fail = true;
      break;
    } else {
      cnt[3] -= 2;
      cnt[4] += 2;
      cnt[2]--;
      ans += 2;
    }
  }
  if (fail) ans = -1;
  printf("%d\n", ans);
  while (getchar() != EOF)
    ;
  return 0;
}
