#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <map>
#include <sstream>
#include <fstream>
#include <stack>
using namespace std;
#define REP(i, a, b) for(int i = a; i < b; i++)
#define rep(i, n) REP(i, 0, n)
typedef stringstream ss;
template<class T>
bool getlinev(vector<T> &arr) { arr.clear(); string str; getline(cin, str); ss s(str); T t; while (s) { s >> t; arr.push_back(t); } return true; }
template<class T>
void printv(vector<T> &arr) { for (T e : arr) printf("%d ", e); puts(""); }


int main()
{
	int v = { 1, 1, 1, 2, 1, 2, 1, 5, 2, 2, 1, 5, 1, 2, 1, 14, 1, 5, 1, 5, 2, 2, 1, 15, 2, 2, 5, 4, 1, 4, 1, 51 };
	int K;
	cin >> K;
	cout << v[K - 1];
	system("pause");
	return 0;	
}