#include <iostream>
#include <sstream>
#include <algorithm>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <complex>
#include <vector>
#include <string>
#include <numeric>
#include <cstdio>
#include <iomanip>

#define REP(i,m,n) for(int i=int(m);i<int(n);i++)
#define EACH(i,c) for (auto &(i): c)
#define all(c) begin(c),end(c)
#define EXIST(s,e) ((s).find(e)!=(s).end())
#define SORT(c) sort(begin(c),end(c))
#define pb emplace_back
#define MP make_pair
#define SZ(a) int((a).size())

#ifdef LOCAL
#define DEBUG(s) cout << (s) << endl;
#define dump(x)  cerr << #x << " = " << (x) << endl;
#define BR cout << endl;
#else
#define DEBUG(s) 
#define dump(x)  
#define BR 
#endif
using namespace std;

typedef unsigned int   UI;
typedef unsigned long  UL;
typedef long long      LL;
typedef unsigned long long ULL;
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<LL> VLL;
typedef vector<string> VS;
typedef pair<int, int> PII;

const double EPS = 1e-10;
const double PI  = acos(-1.0);

template<class T> inline T sqr(T x) {return x*x;}

int main() {
	int n, cnt = 1;
	cin >> n;
	switch(n) {
		case 4:
		cnt = 2*3;
		break;
		case 6:
		cnt = 2*2*3;
		break;
		case 8:
		cnt = 24;
		break;
		case 9:
		cnt = 2*2*3*3;
		break;
		case 10:
		cnt = 2*2*2*2*3;
		break;
		case 12:
		cnt = 2*2*3*5;
		break;
		default:
		REP(i,1,n) cnt *= 2;
		break;
	}
	cout << cnt << endl;
	
	return 0;
}