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 <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/a7487d7e62f90136b78ae3fbf0a008396f146e13.png" style="max-width: 100.0%;max-height: 100.0%;"/> for SmallR while <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/c443c7703e51f03d0eece0b96b9e84e425878209.png" style="max-width: 100.0%;max-height: 100.0%;"/> for Zanoes. The one who shoots in the target first should be the winner.

Output the probability that SmallR will win the match.
A single line contains four integers <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/488158367221f441ba94b9475c03436069df2a7e.png" style="max-width: 100.0%;max-height: 100.0%;"/>.
from collections import defaultdict, deque
from functools import lru_cache
from heapq import heappush, heappop
from bisect import bisect_right, bisect_left
import math
hpop = heappop
hpush = heappush
MOD = 10**9 + 7

def solution():
    a,b,c,d = map(int, input().split())
    me = a/b
    he = 1 - c/d
    sum = 0
    i = 0
    while (me**(i+1)) * (he**i) > 10**(-7):
        sum += (me**(i+1)) * (he**i) 
        i += 1
    print(sum)

    
 
def main():
    t = 1
    #t = int(input())
    for _ in range(t):
        solution() 
 
import sys
import threading
sys.setrecursionlimit(1 << 30)
threading.stack_size(1 << 27)
thread = threading.Thread(target=main)
thread.start(); thread.join()
#main()
