{ Free Pascal }

const
    M = 200000; // Максимальна можлива вартість монети
var
    f: text;
    s, n, ans, i, p: longint;
    cnt: array[1..M] of longint;    // cnt[p] буде дорівнювати
                                    // кількості монет вартості p
begin
    for p := 1 to M do  // Ініціалізація масиву
        cnt[p] := 0;

    assign(f, 'coins.in');
    reset(f);
    read(f, s, n);
    for i := 1 to n do begin
        read(f, p);
        inc(cnt[p]);    // Якщо чергова монета має вартість p,
                        // збільшуємо cnt[p] на один
    end;
    close(f);

    ans := 0;
    // Збільшуємо відповідь на кількість пар монет, одна з яких
    // має вартість p, а інша — s-p, де p пробігає всі значення
    // від 1 до [(s-1)/2]:
    for p := (s - 1) div 2 downto 1 do
        inc(ans, cnt[p] * cnt[s - p]);
    // Якщо s парне, збільшуємо відповідь на кількість пар монет,
    // кожна з яких має вартість рівно s/2:
    if s mod 2 = 0 then
        inc(ans, cnt[s div 2] * (cnt[s div 2] - 1) div 2);

    assign(f, 'coins.out');
    rewrite(f);
    writeln(f, ans);
    close(f);
end.