Problem:
Score : 200 points

Problem Statement

Snuke loves working out. He is now exercising N times.

Before he starts exercising, his power is 1. After he exercises for the i-th time, his power gets multiplied by i.

Find Snuke's power after he exercises N times. Since the answer can be extremely large, print the answer modulo 10^{9}+7.

Constraints

1 ≤ N ≤ 10^{5}

Input

The input is given from Standard Input in the following format:

N

Output

Print the answer modulo 10^{9}+7.

Sample Input 1

3

Sample Output 1

6

After Snuke exercises for the first time, his power gets multiplied by 1 and becomes 1.

After Snuke exercises for the second time, his power gets multiplied by 2 and becomes 2.

After Snuke exercises for the third time, his power gets multiplied by 3 and becomes 6.

Sample Input 2

10

Sample Output 2

3628800

Sample Input 3

100000

Sample Output 3

457992974

Print the answer modulo 10^{9}+7.

Solution in Rust (1.42.0) (judge verdict: Accepted)

use std::io;

fn main() {
    let mut input_line: String = String::new();
    io::stdin().read_line(&mut input_line).expect("Err");

    let inputs: Vec<&str> = input_line.split_whitespace().collect();

    let n: i64 = inputs[0].parse().unwrap();
    let border: i64 = 10_i64.pow(9) + 7;
    let mut power: i64 = 1;

    for i in 1..n+1{
        // println!("current power:{} (i:{})", power, i);
        power = power % border * i;
    }

    print!("{}", power % border);

}