#include<iostream>
using namespace std;

bool bilmasa[2048][2048];
int brot=0;
int r=1,k=1,u=1,br=0;

void nextpos ()
{	if(u==1)
	{		if(bilmasa[r][k+1]==0){u++;r++;k--;br++;return;}
		if(bilmasa[r+1][k]==0){u=3;r--;k++;br++;return;}
	}
	if(u==2)
	{	if(bilmasa[r][k-1]==0){u--;r++;k++;br++;return;}
		if(bilmasa[r+1][k]==0){u=4;r--;k--;br++;return;}
	}
	if(u==3)
	{	if(bilmasa[r][k+1]==0){u=4;r--;k--;br++;return;}
		if(bilmasa[r-1][k]==0){u=1;r++;k++;br++;return;}
	}
	if(u==4)
	{	if(bilmasa[r][k-1]==0){u=3;r--;k++;br++;return;}
		if(bilmasa[r-1][k]==0){u=2;r++;k--;br++;return;}
	}
	
	if(u==1&&bilmasa[r+1][k+1]==1){r++;k++;return;}
	if(u==2&&bilmasa[r+1][k-1]==1){r++;k--;return;}
	if(u==3&&bilmasa[r-1][k+1]==1){r--;k++;return;}
	if(u==4&&bilmasa[r-1][k-1]==1){r--;k--;return;}
}

bool pr (int n,int m)
{	if(r==1&&k==1)return false;
	if(r==1&&k==m)return false;
	if(r==n&&k==1)return false;
	if(r==n&&k==m)return false;
	return true;
}

int main()
{
	int n,m;
	cin>>n>>m;
	if(n==m){cout<<1<<endl;return 0;}
	for(int i=1;i<=n;i++)
	{	for(int j=1;j<=m;j++)
			bilmasa[i][j]=true;
	}
	do
	{
		nextpos();
	}
	while(pr(n,m)==true);
	br++;
	cout<<br<<endl;
	/*for(int i=0;i<=n+1;i++)
	{	for(int j=0;j<=m+1;j++)
			cout<<bilmasa[i][j];
		cout<<endl;
	}*/
	return 0;
}

