import java.io.*; import java.util.*; import static java.lang.System.*; public class Solution{ public static long cuts(int n,int m){ if(n==1){ return m-1; } if(m==1){ return n-1; } if(n%2==0){ return 1+2*cuts(n/2,m); } if(m%2==0){ return 1+2*cuts(n,m/2); } if(n>=m){ //both odd >1 return 1+cuts(n-1,m)+cuts(1,m); }else{ return 1+cuts(n,m-1)+cuts(n,1); } } public static void main(String[] args) throws IOException { BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); String[] s=in.readLine().split(" "); int n=Integer.parseInt(s[0]); int m=Integer.parseInt(s[1]); System.out.println(cuts(n,m)); } }