A,B,N,M=map(int,input().split()) L,R=0,10**18+1 while L>1 C,D=A,B if max(C,D)=X: y=(C-X)//N C-=y*N D+=y if D>=X: y=(D-X)//M D-=y*M C+=y if min(C,D)>=X: L=X else: R=min(R-1,X) print(L)