You are given four integers A, B, C, and D. Find the number of integers between A and B (inclusive) that can be evenly divided by neither C nor D.

Constraints

* 1\leq A\leq B\leq 10^{18}
* 1\leq C,D\leq 10^9
* All values in input are integers.

Input

Input is given from Standard Input in the following format:


A B C D


Output

Print the number of integers between A and B (inclusive) that can be evenly divided by neither C nor D.

Examples

Input

4 9 2 3


Output

2


Input

10 40 6 8


Output

23


Input

314159265358979323 846264338327950288 419716939 937510582


Output

532105071133627368
import java.util.Scanner;

public class Main{
	static long f(long A, long C, long D) {
		if(A == 0) return 0;
		long mulC = A / C, mulD = A / D;
		long mulCD = A / LCM(C, D);
		return A - mulC - mulD + mulCD;
	}
	static long GCD(long x, long y) {
		if(Math.max(x, y) % Math.min(x, y) == 0) return Math.min(x, y);
		return GCD(Math.min(x, y), Math.max(x, y) % Math.min(x, y));
	}
	static long LCM(long x, long y){
		return (x / GCD(x,y)) * y;
	}
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		while(sc.hasNext()) {
			long A = sc.nextLong(), B = sc.nextLong(), C = sc.nextLong(), D = sc.nextLong();
			System.out.println(f(B, C, D) - f(A - 1, C, D));
		}
	}
}