#include <iostream>
#include <set>
using namespace std;

set<int> s;
int N;

bool canFixSingle(int i) {
    int offset = 1;

    while (true) {
        if (i - offset < 1) return false;
        if (i + offset > N) return false;

        int a = s.count(i - offset);
        int b = s.count(i + offset);

        if ((a == 0) && (b == 0)) return true;
        offset++;
    }
}

// for i and (i+1)
bool canFixDouble(int i) {
    int offset = 1;

    while (true) {
        if (i - offset < 1) return false;
        if (i + 1 + offset > N) return false;

        int a = s.count(i - offset);
        int b = s.count(i + 1 + offset);

        //cout << "i = " << i << ", a=" << a << ", b="<< b << ", offset=" << offset << endl;

        if ((a == 0) && (b == 0)) {
                return true;

                //cout << "can fix " << i << " and " << i+1 << endl;
        }

        offset++;
    }
}

int main() {
    int n, k;
    cin >> n >> k;
    int t;
    int sArr[10000];
    for (int i = 0; i < k; i++) {
        cin >> t;
        sArr[i] = t;
        s.insert(t);
    }

    int a = 0;
    int res = 2 * n - 1;
    N = n;
    for (int i = 0; i < k; i++) {
        a = sArr[i];

        if (!canFixSingle(a)) {
                res--;

                //cout << "can''t fix " << a << endl;
        }

        if (a < n) {
            if (!canFixDouble(a)) {
                    res--;

                    //cout << "can''t fix " << a << " and " << a + 1 << endl;
            }
        }

        if ((a > 1) && (sArr[i] - sArr[i-1] > 1)) {
            if (!canFixDouble(a-1)) {
                    res--;

                    //cout << "can''t fix " << a - 1<< " and " << a << endl;
            }
        }
    }

    cout << res;
}
