#include <iostream>
using namespace std;

long n;
long long tot;
long long fact[8];
bool hor[7][7], ver[7][7];

void latin_square(long i, long j) {
   if (j >= n) {
      ++tot;
   } else {
      for (long k= 0; k< n; ++k) {
         if ((!ver[i][k]) && (!hor[j][k])) {
            ver[i][k] = hor[j][k] = true;
            if (i+1 < n) {
               latin_square(i+1, j);
            } else {
               latin_square(1, j+1);
            }
            ver[i][k] = hor[j][k] = false;
         }
      }
   }
}

int main (void) {
   cin >> n;
   fact[0] = 1;
   for (int i = 1; i<= n; ++i) {
      fact[i] = i*fact[i-1];
   }
   for (int i = 0; i< n; ++i) {
      hor[0][i] = hor[i][i] = true;
      ver[0][i] = ver[i][i] = true;
   }
   tot = 0;
   latin_square(1, 1);
   cout << tot << " " << tot*fact[n]*fact[n-1] << endl;

   return(0);
}
