import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int c = 0;
        final short L = Short.parseShort(br.readLine());
        final short N = Short.parseShort(br.readLine());

        final short[] nums = new short[N];
        for (short i = 0; i < N; i++) {
            nums[i] = Short.parseShort(br.readLine());
        }
        br.close();

        Arrays.sort(nums);

        for (short i1 = 0; i1 < N-1; i1++) {
            short s1 = nums[i1];
            for (short i2 = (short) (i1 + 1); i2 < N; i2++) {
                final short s2 = nums[i2];
                final short s = (short) (L - (s1 + s2));
                if (s < 0) {
                    System.out.println(c);
                    return;
                }
                if (s(nums, s, (short) (i2+1), N)) {
                    c++;
                }
            }
        }
        System.out.println(c);
        return;
    }


    private static boolean s(short[] l, short sc, short si, short ms) {
        short r = (short) (ms - si);
        while (r > 50) {
            final short c = l[si + (ms - si)/2];
            if (sc == c) {
                return true;
            } else if (sc < c) {
                ms = (short) ((ms - (r/2))+1);
            } else {
                si = (short) (ms - (r/2));
            }
            r = (short) (ms - si);
        }
        if (Arrays.binarySearch(l, si, ms, sc) > -1) {
            return true;
        }
        return false;
    }
}