#include <bits/stdc++.h>
#define ll long long
#define sti string
#define bit(n,i) ((n>>i) &1)
#define itachi ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define maxn 2000005
#define fi first
#define se second
#define i18 __int128_t
using namespace std;
vector<int> stair[20005];
int nexttime[20005],wait[20005],n,k,a[20005],res=0;
void Receive(int i,int x){
if(i<=0) return ;
if(i!=0 && stair[i].size()==2){
int y=(wait[stair[i][1]] > wait[stair[i][0]] ? stair[i][1] : stair[i][0]);
Receive(i-1,y);
}
stair[i].push_back(x);
return ;
}
void Request(int i,int x){
if(i<=0) return ;
if(stair[i].size()>=1) if(x==stair[i][0]) return ;
if(stair[i].size()>=2) if(x==stair[i][1]) return ;
if(i!=0 && stair[i].size()==2){
int y=(wait[stair[i][1]] > wait[stair[i][0]] ? stair[i][1] : stair[i][0]);
if(y==stair[i][1]) stair[i].erase(stair[i].begin()+1);
else stair[i].erase(stair[i].begin());
Receive(i-1,y);
}
res++;
Request(i-1,x);
stair[i].push_back(x);
if(stair[i-1].size()>=1) if(stair[i-1][0]==x) stair[i-1].erase(stair[i-1].begin());
if(stair[i-1].size()>=2) if(stair[i-1][1]==x) stair[i-1].erase(stair[i-1].begin()+1);
return ;
}
int main()
{
itachi
cin>>n>>k;
for(int i=1;i<=k;i++) cin>>a[i];
for(int i=1;i<=1e4;i++) wait[i]=1e9;
for(int i=k;i>=1;i--){
int x=a[i];
nexttime[i]=wait[x];
wait[x]=i;
}
for(int i=1;i<=k;i++){
Request(n,a[i]);
wait[a[i]]=nexttime[i];
}
cout<<res*2;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgc3RpIHN0cmluZwojZGVmaW5lIGJpdChuLGkpICgobj4+aSkgJjEpCiNkZWZpbmUgaXRhY2hpIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKI2RlZmluZSBtYXhuIDIwMDAwMDUKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGkxOCBfX2ludDEyOF90CgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3RvcjxpbnQ+IHN0YWlyWzIwMDA1XTsKaW50IG5leHR0aW1lWzIwMDA1XSx3YWl0WzIwMDA1XSxuLGssYVsyMDAwNV0scmVzPTA7Cgp2b2lkIFJlY2VpdmUoaW50IGksaW50IHgpewogICAgaWYoaTw9MCkgcmV0dXJuIDsKICAgIGlmKGkhPTAgJiYgc3RhaXJbaV0uc2l6ZSgpPT0yKXsKICAgICAgICBpbnQgeT0od2FpdFtzdGFpcltpXVsxXV0gPiB3YWl0W3N0YWlyW2ldWzBdXSA/IHN0YWlyW2ldWzFdIDogc3RhaXJbaV1bMF0pOwogICAgICAgIFJlY2VpdmUoaS0xLHkpOwogICAgfQogICAgc3RhaXJbaV0ucHVzaF9iYWNrKHgpOwogICAgcmV0dXJuIDsKfQoKdm9pZCBSZXF1ZXN0KGludCBpLGludCB4KXsKICAgIGlmKGk8PTApIHJldHVybiA7CiAgIGlmKHN0YWlyW2ldLnNpemUoKT49MSkgaWYoeD09c3RhaXJbaV1bMF0pIHJldHVybiA7CiAgIGlmKHN0YWlyW2ldLnNpemUoKT49MikgaWYoeD09c3RhaXJbaV1bMV0pIHJldHVybiA7CiAgIGlmKGkhPTAgJiYgc3RhaXJbaV0uc2l6ZSgpPT0yKXsKICAgICAgaW50IHk9KHdhaXRbc3RhaXJbaV1bMV1dID4gd2FpdFtzdGFpcltpXVswXV0gPyBzdGFpcltpXVsxXSA6IHN0YWlyW2ldWzBdKTsKICAgICAgaWYoeT09c3RhaXJbaV1bMV0pIHN0YWlyW2ldLmVyYXNlKHN0YWlyW2ldLmJlZ2luKCkrMSk7CiAgICAgIGVsc2Ugc3RhaXJbaV0uZXJhc2Uoc3RhaXJbaV0uYmVnaW4oKSk7CiAgICAgIFJlY2VpdmUoaS0xLHkpOwogICB9CiAgIHJlcysrOwoKICAgUmVxdWVzdChpLTEseCk7CiAgIHN0YWlyW2ldLnB1c2hfYmFjayh4KTsKICAgaWYoc3RhaXJbaS0xXS5zaXplKCk+PTEpIGlmKHN0YWlyW2ktMV1bMF09PXgpIHN0YWlyW2ktMV0uZXJhc2Uoc3RhaXJbaS0xXS5iZWdpbigpKTsKICAgaWYoc3RhaXJbaS0xXS5zaXplKCk+PTIpIGlmKHN0YWlyW2ktMV1bMV09PXgpIHN0YWlyW2ktMV0uZXJhc2Uoc3RhaXJbaS0xXS5iZWdpbigpKzEpOwogICByZXR1cm4gOwp9CgppbnQgbWFpbigpCnsKICAgIGl0YWNoaQogICAgY2luPj5uPj5rOwogICAgZm9yKGludCBpPTE7aTw9aztpKyspIGNpbj4+YVtpXTsKICAgIGZvcihpbnQgaT0xO2k8PTFlNDtpKyspIHdhaXRbaV09MWU5OwogICAgZm9yKGludCBpPWs7aT49MTtpLS0pewogICAgICAgIGludCB4PWFbaV07CiAgICAgICAgbmV4dHRpbWVbaV09d2FpdFt4XTsKICAgICAgICB3YWl0W3hdPWk7CiAgICB9CiAgICBmb3IoaW50IGk9MTtpPD1rO2krKyl7CiAgICAgICAgUmVxdWVzdChuLGFbaV0pOwogICAgICAgIHdhaXRbYVtpXV09bmV4dHRpbWVbaV07CiAgICB9CiAgICBjb3V0PDxyZXMqMjsKICAgIHJldHVybiAwOwp9Cg==