import Control.Monad
import Text.Printf
main = getLine >>= main' . fmap read . words
    where
        main' [n, l] = replicateM n getLine >>= mapM_ (printf "%.7f\n") . solve l 0 0 [] . fmap ((\[t, v] -> (read t, read v)) . words)


solve :: Int -> Double -> Double -> [(Double, Int)] -> [(Double, Int)] -> [Double]
solve r p s ys (x@(t, v) : xs)
    | p <= t = inc : solve r t tv (insert x ys) xs
    | otherwise = inc : solve r inc tv [(inc, r)] xs
    where
        inc = tv / fromIntegral r
        tv = calc s v ys + (t * fromIntegral v)

solve _ _ _ _ _ = []

calc :: Double -> Int -> [(Double, Int)] -> Double
calc acc n ((t, v) : xs)
    | n > v = calc (acc - t * fromIntegral v) (n - v) xs
    | otherwise = acc - t * fromIntegral n
calc acc _ _ = acc

insert :: (Double, Int) -> [(Double, Int)] -> [(Double, Int)]
insert (xt, xv) (y@(yt, yv) : zs)
    | xt <= yt = y : zs
    | xv >= yv = insert (xt, xv - yv) zs
    | otherwise = (yt, yv - xv) : insert (xt, xv) zs
insert x _ = [x]
