#include
#include
using namespace std;
int main()
{
int n,prostor,k,tmp;
bool izgradeni[10001];
int novi=0;
cin>>n>>prostor>>k;
// ???? ????????? ?? ??????? ?? ????? ???????? False
for(int i=1;i<=n;i++)
{
izgradeni[i]=false;
}
// ???? ????????? ?? ????????? ?? ??? ??? ????????? ?????? ?? ????? ?? True
for(int i=1;i<=k;i++)
{
cin>>tmp;
izgradeni[tmp]=true;
}
int parni_pred=0,neparni_pred=0;
int parni_posle=0,neparni_posle=0;
for(int i=1;i<=n;i++)
{
//?? ?????
if(i%2==0)
{
if(izgradeni[i]==false)
{
parni_pred++;
}
else
{
parni_pred=0;
// ??????? ???? ?????? ????????? ??????, ?? ?????? ?????? ???????? ?? ???? ????????? ?? ?????? ??????????
// if(izgradeni[2]==false)
izgradeni[2]=true;
}
if(parni_pred==prostor+1)
{
//?????? ????? ???? ?? ????? ?? ?????? ??. 2
if(izgradeni[2]==false)
{
novi++;
izgradeni[2]=true;
parni_pred=prostor;
}
else
{
for(int j=i+2;j<=n;j+=2)
{
//???? ???? ????? ?? ???? ??? ?? ?? ?????? prostor = 0;
if(parni_posle==prostor)
{
novi++;
parni_posle=0;
break;
}
if(izgradeni[j]==false)
{
parni_posle++;
}
else
{ // ?? ?????? ??????????
parni_posle=0;
break;
}
}
//??? ????? ???? ?? ? ??????? ????????? ??????, ? ??? ???????? ?? ?????? ?? ??????,
//??? ????? ???? ?????? ?? ????????? ???? ???? ??????
if(parni_posle!=0)
{
novi++;
}
else if (parni_posle==0 && i+2>n)
{
novi++;
}
parni_posle=0;
parni_pred=0;
}
}
}
//?? ???????
else
{
if(izgradeni[i]==false)
{
neparni_pred++;
}
else
{
neparni_pred=0;
// ??????? ???? ?????? ????????? ??????, ?? ?????? ?????? ???????? ?? ???? ????????? ?? ?????? ??????????
// if(izgradeni[1]==false)
izgradeni[1]=true;
}
if(neparni_pred==prostor+1)
{
//?????? ??????? ???? ?? ????? ?? ?????? ??. 1
if(izgradeni[1]==false)
{
novi++;
izgradeni[1]=true;
neparni_pred=prostor;
}
else
{
for(int j=i+2;j<=n;j+=2)
{
//???? ???? ????? ?? ???? ??? ?? ?? ?????? prostor = 0;
if(neparni_posle==prostor)
{
novi++;
neparni_posle=0;
break;
}
if(izgradeni[j]==false)
{
neparni_posle++;
}
else
{ // ?? ?????? ??????????
neparni_posle=0;
break;
}
}
//??? ????? ???? ?? ? ??????? ????????? ??????, ? ??? ???????? ?? ?????? ?? ??????,
//??? ????? ???? ?????? ?? ????????? ???? ???? ??????
if(neparni_posle!=0)
{
novi++;
}
else if (neparni_posle==0 && i+2>n)
{
novi++;
}
neparni_posle=0;
neparni_pred=0;
}
}
}
}
// ?? ??? ?? ??????????? ???????? ???? ???? ??????? ?? ??????, ? ????????? >= ???????? ???? ???????
// ?????? ?? ???????? ?????? ????? ??????? ???? ?? ???? == ?? ?????? ?? ?????? ????? ?????? (???? ?? ?? ??????)
// ?? parni_pred > 0 ??????????? ???? ??????? ????? ????? ??????
if(prostor>=n/2 && parni_pred==n/2 && parni_pred>0)
{
novi++;
}
//??? ? ??????? ?????? ?? ???????, ????? ????????? ?????? ?? (n/2)+1
// ?????? ?? 5 (5/2)+1 = 3 ??????? ?????
int n1;
if(n%2==1)
n1=(n/2)+1;
else n1=n/2;
//?????? ?? ???????
if(prostor>=n1 && neparni_pred==n1 && neparni_pred>0)
{
novi++;
}
cout<