10 20 10 5
 20 1 2 3
 7 2 2 2
 25 10 5 10
 999 999 899 299
 10000 5000 0 5000
 2 2 2 2
 1 0 2 0
 3 3 2 1
 1 1 0 0
 1 0 0 1
 20 10 20 30
 505 142 321 12
 101 10 10 50
 10 19 15 100
 10000 5000 5000 0
 1234 645 876 1000
 3 10 10 10
 1 0 1 0
 7 3 0 5
 101 10 0 50
 1 0 0 0
 10 0 8 10
 1 2 0 0
 5 2 1 1
 8765 2432 2789 4993
 8987 4000 2534 4534
 10000 5000 5000 5000
 10000 5000 2500 2500
 10000 0 5000 5000
 10000 4999 2500 2500
 5 5000 5000 5000
 10000 4534 2345 4231
 5643 1524 1423 2111
 7777 4444 3333 2222
 2500 5000 5000 5000
 10000 2500 2500 2500
 5000 5000 5000 5000

36
 0
 1
 12
 145000
 1251
 3
 1
 3
 0
 0
 57
 0
 33
 35
 0
 141636
 6
 1
 1
 3
 0
 5
 1
 0
 1697715
 2536267
 6253751
 1
 2501
 0
 12
 2069003
 146687
 1236544
 1565001
 0
 4691251

import java.util.Arrays;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;


public class Cola{
	private static Scanner scanner = new Scanner(System.in);


	public static void main(String[] args) {


		int targetLitre = scanner.nextInt();
		int litre05 = scanner.nextInt();
		int litre1 = scanner.nextInt();
		int litre2 = scanner.nextInt();

		int possibility = 0;

		if (litre05 == 0) {
			if (litre2 == 0){
				for(int i = 0; i <= litre1; i++) {
					if(1 * i == targetLitre) {
						possibility ++;
						System.out.println("0.5 Litre : " + 0);
						System.out.println("1 Litre : " + i);
						System.out.println("2 Litre : " + 0);
					}
				}
			} else if (litre1 == 0){
				for(int i = 0; i <= litre2; i++) {
					if(2 * i == targetLitre) {
						possibility ++;
						System.out.println("0.5 Litre : " + 0);
						System.out.println("1 Litre : " + 0);
						System.out.println("2 Litre : " + i);
					}
				}
				
			} else {
				for(int i = 0; i <= litre1; i++) {
					for(int j = 0; j <= litre2; j++) {
						if((1 * i) + (2 * j) == targetLitre)
						{
							possibility ++;
							System.out.println("0.5 Litre : " + 0);
							System.out.println("1 Litre : " + i);
							System.out.println("2 Litre : " + j);
						}
					}
				}
			}

		} else if (litre1 == 0) {
			if (litre2 == 0) {
				for(int i = 0; i <= litre05; i++) {
					if(0.5 * i == targetLitre) {
						possibility ++;
						System.out.println("0.5 Litre : " + i);
						System.out.println("1 Litre : " + 0);
						System.out.println("2 Litre : " + 0);
					}
				}
			} else {
				for(int i = 0; i <= litre05; i++) {
					for(int j = 0; j <= litre2; j++) {
						if((0.5 * i) + (2 * j) == targetLitre)
						{
							possibility ++;
							System.out.println("0.5 Litre : " + i);
							System.out.println("1 Litre : " + 0);
							System.out.println("2 Litre : " + j);
						}
					}
				}
			}
		} else if (litre2 == 0) {
			for(int i = 0; i <= litre05; i++) {
				for(int j = 0; j <= litre1; j++) {
					if((0.5 * i) + (1 * j) == targetLitre)
					{
						possibility ++;
						System.out.println("0.5 Litre : " + i);
						System.out.println("1 Litre : " + j);
						System.out.println("2 Litre : " + 0);
					}
				}
			}

		} else if (litre05 == 0 && litre1 == 0 && litre2 == 0) {
			possibility = 0;
			System.out.println("0.5 Litre : " + 0);
			System.out.println("1 Litre : " + 0);
			System.out.println("2 Litre : " + 0);

		} else {
			for(int i = 0; i <= litre05; i++) {
				for(int j = 0; j <= litre1; j++) {
					for(int k = 0; k <= litre2; k++) {
						if((0.5 * i) + (1 * j) + (2 * k) == targetLitre)
						{
							possibility ++;
							System.out.println("0.5 Litre : " + i);
							System.out.println("1 Litre : " + j);
							System.out.println("2 Litre : " + k);
						}
					}
				}
			}
		}

		System.out.println(possibility);
		
	}

}
