package no117; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.math.BigInteger; import java.util.InputMismatchException; import java.util.NoSuchElementException; public class Main { public static final BigInteger MOD = new BigInteger("1000000007"); public static void main(String[] args) { BigInteger[] fact = new BigInteger[2000001]; BigInteger[] factInv = new BigInteger[1000001]; fact[0] = BigInteger.ONE; for(int i=1;i<=2000000;i++) { fact[i] = fact[i-1].multiply(BigInteger.valueOf(i)).mod(MOD); } for(int i=0;i<=1000000;i++) { factInv[i] = fact[i].modInverse(MOD); } IO io = new IO(); int n = io.nextInt(); for(int i=0;i Integer.MAX_VALUE) { throw new NumberFormatException(); } return (int) nl; } public char nextChar() { if (!hasNext()) { throw new NoSuchElementException(); } return (char) readByte(); } public double nextDouble() { return Double.parseDouble(next());} public int[] arrayInt(int n) { int[] a = new int[n]; for(int i=0;i