#include<stdio.h>
int p[524288];
bool chk(int l,int r)
{
	for(int i=l;i<=r;i++)
	{
		if(p[i]<l||p[i]>r)
		{
			return false;
		}
	}
	if(l==r)
	{
		return true;
	}
	if(p[l]==l)
	{
		l++;
	}
	if(p[r]==r)
	{
		r--;
	}
	int now1=0,now2=0;
	for(int i=l;i<=r;i+=2)
	{
		if(p[i]<i)
		{
			if(p[i]<now1)
			{
				return false;
			}
			now1=p[i];
		}
		else
		{
			if(p[i]<now2)
			{
				return false;
			}
			now2=p[i];
		}
	}
	return true;
}
int main()
{
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&p[i]);
	}
	for(int i=1;i<=n;i++)
	{
		if((p[i]^i)&1)
		{
			printf("No\n");
			return 0;
		}
	}
	int now=1;
	for(int i=2;i<=n;i++)
	{
		if((p[i]==i)==(p[i-1]==i-1))
		{
			if(!chk(now,i-1))
			{
				printf("No\n");
				return 0;
			}
			now=i;
		}
	}
	if(chk(now,n))
	{
		printf("Yes\n");
	}
	else
	{
		printf("No\n");
	}
	return 0;
}