use std::io::Read;

fn main() {
	let mut s = String::new();
	std::io::stdin().read_to_string(&mut s).ok();
	let v: Vec<u128> = s.split_whitespace().flat_map(str::parse).collect();
	let (mut a, mut r, n) = (0, 1, v[0] - 1);
	for i in 0..=n {
		a += r * v[1 + i as usize];
		r *= n - i;
		r /= i + 1;
	}
	println!("{}", a % 1000000007)
}