import Control.Monad import Control.Applicative import Data.List import qualified Data.Map as Map import Data.Array strToInt s = (read :: String -> Int) s main = do n <- readLn :: IO Int cd <- replicateM n (map read . words <$> getLine) print $ f cd f :: [[Int]] -> Int f [] = 0 f (a:an) = mod ((f an) + (g (head a)) * (last a)) 1000000007 where g x = if (even x) then div x 2 else (div x 2) + 1