import java.util.Scanner;
public class Taxi_158B {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[] s = new int[n];
int[] num = new int[4];
for (int i = 0; i < n; i++) {
s[i] = scan.nextInt();
num[s[i] - 1]++;
}
int a = num[3]; // 4
int b = num[2]; // 3
if (num[2] >= num[0]) {
num[0] = 0;
} else {
num[0] -= b;
}
int c = num[1] / 2;
if (num[1] % 2 != 0) {
c++;
if (num[0] + 2 <= 4) {
num[0] = 0;
}else {
num[0] -= 2;
}
}
int d = num[0] / 4;
if (num[0] % 4 != 0)
d++;
System.out.println(a + b + c + d);
scan.close();
}
}