import java.util.Scanner;

public class Latin {
   
   static int n;
   static long tot;
   static long[] fact;
   static boolean[][] hor;
   static boolean[][] ver;

   static void latinSquare(int i, int j) {
      if (j >= n) {
         ++tot;
      } else {
         for (int k = 0; k< n; ++k) {
            if ((!ver[i][k]) && (!hor[j][k])) {
               ver[i][k] = hor[j][k] = true;
               if (i+1 < n) {
                  latinSquare(i+1, j);
               } else {
                  latinSquare(1, j+1);
               }
               ver[i][k] = hor[j][k] = false;
            }
         }
      }
   }
   
   public static void main (String[] args) {
      Scanner in = new Scanner(System.in);

      n = in.nextInt();
      fact = new long[n+1];
      fact[0] = 1;
      for (int i = 1; i<= n; ++i) {
         fact[i] = i*fact[i-1];
      }
      hor = new boolean[n][n];
      ver = new boolean[n][n];
      for (int i = 0; i< n; ++i) {
         hor[0][i] = hor[i][i] = true;
         ver[0][i] = ver[i][i] = true;
      }
      tot = 0;
      latinSquare(1, 1);

      System.out.println(tot + " " + tot*fact[n]*fact[n-1]);
   }
}
