import std.algorithm;
import std.range;
import std.stdio;
import std.math;
import std.array;
import std.string;
import std.conv;
import std.typecons;

/// 数列の読み込み
auto readNums() {
	return readln().chomp.split.map!(to!int).array;
}

/// 数の読み込み
auto readNum() {
	return readNums.front;
}

/// 指定行数読み込み
auto readRows(size_t rows) {
	return generate(() => readln().chomp).take(rows).array;
}

void main() {
    enum P = 10 ^^ 9 + 7;
    const n = readNum();
    long r = 1;
    foreach(i; 1 .. n + 1) {
        r = r * i % P;
    }
    writefln("%s", r);
}