#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 100 * 1000 + 10;
int a[MAX_N];
int main() {
  int n, tedad = 0, x = 0, y = 0, z = 0;
  cin >> n;
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n; i++) {
    if (a[i] == 4) {
      tedad = tedad + 1;
      a[i] = 0;
      continue;
    } else if (a[i] == 1)
      x = x + 1;
    else if (a[i] == 2)
      y = y + 1;
    else
      z = z + 1;
  }
  tedad = tedad + (y / 2);
  if (y % 2 == 1) y = 1;
  if (y == 1) {
    if (x <= 1)
      x = 0;
    else
      x = x - 2;
    y = 0;
    tedad = tedad + 1;
  }
  if (z > 0) {
    if (x > 0 && x >= z) {
      tedad = tedad + z;
      x = x - z;
      z = 0;
    } else if (x > 0) {
      z = z - x;
      tedad = tedad + x + z;
      x = 0;
      z = 0;
    } else {
      tedad = tedad + z;
      z = 0;
    }
  }
  if (x > 0) {
    if (x % 4 == 0)
      tedad = tedad + (x / 4);
    else
      tedad = tedad + (x / 4) + 1;
  }
  cout << tedad << endl;
  return 0;
}
