#include<stdio.h>

int isemptyA(void);
int isemptyB(void);
void push(int);
int popA(void);
int popB(void);

int C[51],A[26],B[26],topA,topB,topC,x,y,n,a;

int main(void)
{
int r,deck[51],i,c,shuffle[51],j,t;

while(scanf("%d%d",&n,&r)!=EOF)
  {
for(i=0;i<r;i++)
  scanf("%d",&shuffle[i]);

for(i=0;i<n;i++)
  deck[i]=i;

a=n/2;

for(i=n;i>=a+1;i--)
  A[n-i]=i-1;


for(i=0;i<a;i++)
  B[i]=i;

 for(i=0;i<50;i++)
   C[i]=0;

topA=a;
topB=0;
 j=0;

while(1)
  {

    if(isemptyA()==1 && isemptyB()==1)break;

for(i=0;i<shuffle[j];i++)
  {

    if(isemptyA()==1)break;
 push(popA());
}

for(i=0;i<shuffle[j];i++)
  {
    if(isemptyB()==1)break;
 push(popB());
}

j++;
}
 printf("%d\n",C[n]);
}
return 0;
}

int isemptyA(void){
return (topA==-1);
}

int isemptyB(void){
return (topB==a);
}

void push(int x){
C[++topC]=x;
}

int popA(void)
{
x=A[topA--];
return x;
}

int popB(void)
{
y=B[topB++];
return y;
}