#include <bits/stdc++.h>
using namespace std;
int cnt[5];
int main() {
  int i, n, t, ans = 0;
  scanf("%d", &n);
  for (i = 1; i <= n; ++i) {
    scanf("%d", &t);
    ++cnt[t];
  }
  int get = min(cnt[1], cnt[2]), res;
  cnt[1] -= get;
  cnt[2] -= get;
  cnt[3] += get;
  ans += get;
  if (cnt[1]) {
    res = cnt[1] % 3;
    ans += (cnt[1] - res) / 3 * 2;
    cnt[3] += (cnt[1] - res) / 3;
    cnt[1] %= 3;
    if (cnt[1] && cnt[3] >= cnt[1]) {
      ans += cnt[1];
      cnt[3] -= cnt[1];
      cnt[4] += cnt[1];
      cnt[1] -= cnt[1];
    }
    if (cnt[1] && cnt[4] + cnt[1] >= 3) {
      ans += 2;
      cnt[4] -= (3 - cnt[1]);
      cnt[1] -= cnt[1];
      ++cnt[3];
    }
  } else if (cnt[2]) {
    res = cnt[2] % 3;
    ans += (cnt[2] - res) / 3 * 2;
    cnt[3] += (cnt[2] - res) / 3 * 2;
    cnt[2] %= 3;
    if (cnt[2] == 2) {
      ans += 2;
      ++cnt[4];
      cnt[2] -= 2;
    }
    if (cnt[2] && cnt[4] >= cnt[2]) {
      ans += cnt[2];
      cnt[3] += cnt[2];
      cnt[4] -= cnt[2];
      cnt[2] -= cnt[2];
    }
    if (cnt[2] && cnt[3] >= 2 * cnt[2]) {
      ans += 2 * cnt[2];
      cnt[3] -= 2 * cnt[2];
      cnt[4] += 2 * cnt[2];
      cnt[2] -= cnt[2];
    }
  }
  if (cnt[1] || cnt[2])
    puts("-1");
  else
    printf("%d\n", ans);
  return 0;
}
