Problem: SmallR is an archer. SmallR is taking a match of archer with Zanoes. They try to shoot in the target in turns, and SmallR shoots first. The probability of shooting the target each time is <image> for SmallR while <image> for Zanoes. The one who shoots in the target first should be the winner.

Output the probability that SmallR will win the match.

Input

A single line contains four integers <image>.

Output

Print a single real number, the probability that SmallR will win the match.

The answer will be considered correct if the absolute or relative error doesn't exceed 10 - 6.

Examples

Input

1 2 1 2


Output

0.666666666667

Solution (in JAVA):

Solution:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.util.StringTokenizer;

public class Bowlers {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader;
        if (args.length == 1) {
            bufferedReader = new BufferedReader(new FileReader(args[0]));
        } else {
            bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        }
        String line = bufferedReader.readLine();
        StringTokenizer stringTokenizer = new StringTokenizer(line, " ", false);
        double a = Integer.parseInt(stringTokenizer.nextToken());
        double b = Integer.parseInt(stringTokenizer.nextToken());
        double c = Integer.parseInt(stringTokenizer.nextToken());
        double d = Integer.parseInt(stringTokenizer.nextToken());

        double answer = getAnswer(a, b, c, d);

        System.out.println(answer);
    }

    private static double getAnswer(double a, double b, double c, double d) {
        double answer = 0;
        double prob = 1;

        double oldAnswer;
        do {
            oldAnswer = answer;
            answer += (prob * a / b);
            prob = prob * (1 - a / b);
            prob = prob * (1 - c / d);
        } while (Math.abs(answer - oldAnswer) > 0.000000001);
        return answer;
    }
}