let MOD = pown 10 9 |> (+)7 |> int64 let R() = stdin.ReadLine() let solve cs ds = let rec f score cs ds = match cs, ds with | [], _ | _, [] -> score | c::cs, d::ds -> let c' = ((c + 1L) / 2L) % MOD let d' = d % MOD let score' = (c' * d') % MOD let newScore = (score + score') % MOD f newScore cs ds f 0L cs ds let N = R() |> int let C, D = let t = List.init N (fun _ -> let t = R().Split() in t.[0], t.[1]) let c = t |> List.map (fst>>int64) let d = t |> List.map (snd>>int64) c, d solve C D |> stdout.WriteLine