use std::io::Read; fn main() { let mut s = String::new(); std::io::stdin().read_to_string(&mut s).ok(); let v: Vec = s.split_whitespace().flat_map(str::parse).collect(); let (n, d) = (v[0] as usize, 1000000007); let mut b = v[n + 2..].iter().sum::(); println!( "{}", (1..n + 2) .map(|i| { let x = b % d * v[i]; b -= v[v.len() - i]; x % d }) .sum::() % d ); }