#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000010;
int num[10];
int b[10];
int main() {
  int n;
  int a;
  while (scanf("%d", &n) == 1) {
    int a;
    memset(num, 0, sizeof(num));
    int sum = 0;
    for (int i = 1; i <= n; i++) {
      scanf("%d", &a);
      sum += a;
      num[a]++;
    }
    for (int i = 0; i <= 4; i++) b[i] = num[i];
    if (sum == 1 || sum == 2 || sum == 5) {
      printf("-1\n");
      continue;
    }
    int start = (sum + 3) / 4;
    int end = sum / 3;
    int ans = -1;
    for (int i = start; i <= end; i++) {
      int t1 = sum - 3 * i;
      int t2 = 4 * i - sum;
      int d = n - t1 - t2;
      int tmp = 0;
      int ss = 0;
      if (t1 >= num[4]) {
        ss += 4 * num[4];
        t1 -= num[4];
        num[4] = 0;
      } else {
        ss += 4 * t1;
        num[4] -= t1;
        t1 = 0;
      }
      if (t1 >= num[3]) {
        ss += 3 * num[3];
        t1 -= num[3];
        num[3] = 0;
      } else {
        ss += 3 * t1;
        num[3] -= t1;
        t1 = 0;
      }
      if (t1 >= num[2]) {
        ss += 2 * num[2];
        t1 -= num[2];
        num[2] = 0;
      } else {
        ss += 2 * t1;
        num[2] -= t1;
        t1 = 0;
      }
      if (t1 >= num[1]) {
        ss += 1 * num[1];
        t1 -= num[1];
        num[1] = 0;
      } else {
        ss += 1 * t1;
        num[1] -= t1;
        t1 = 0;
      }
      t1 = t2;
      if (t1 >= num[4]) {
        ss += 3 * num[4];
        t1 -= num[4];
        num[4] = 0;
      } else {
        ss += 3 * t1;
        num[4] -= t1;
        t1 = 0;
      }
      if (t1 >= num[3]) {
        ss += 3 * num[3];
        t1 -= num[3];
        num[3] = 0;
      } else {
        ss += 3 * t1;
        num[3] -= t1;
        t1 = 0;
      }
      if (t1 >= num[2]) {
        ss += 2 * num[2];
        t1 -= num[2];
        num[2] = 0;
      } else {
        ss += 2 * t1;
        num[2] -= t1;
        t1 = 0;
      }
      if (t1 >= num[1]) {
        ss += 1 * num[1];
        t1 -= num[1];
        num[1] = 0;
      } else {
        ss += 1 * t1;
        num[1] -= t1;
        t1 = 0;
      }
      if (ans == -1)
        ans = sum - ss;
      else
        ans = min(ans, sum - ss);
      for (int j = 0; j <= 4; j++) num[j] = b[j];
    }
    printf("%d\n", ans);
    continue;
    if (num[2] == num[1]) {
      printf("%d\n", num[1]);
    } else if (num[2] > num[1]) {
      int ans = num[1];
      num[2] -= num[1];
      int t = 2 * num[2] / 3;
      printf("%d\n", num[1] + 2 * (num[2] - t));
    } else {
      num[1] -= num[2];
      int t = num[1] / 3;
      printf("%d\n", num[2] + (num[1] - t));
    }
  }
  return 0;
}
