Problem:
Score : 100 points

Problem Statement

Print the K-th element of the following sequence of length 32:

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

Constraints

1 \leq K \leq 32

All values in input are integers.

Input

Input is given from Standard Input in the following format:

K

Output

Print the K-th element.

Sample Input 1

6

Sample Output 1

2

The 6-th element is 2.

Sample Input 2

27

Sample Output 2

5

The 27-th element is 5.

Solution in C# (Mono 4.6.2.0) (judge verdict: Runtime Error)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace AtCoder
{
    class Pair
    {
        public Pair(long a,long b)
        {
            this.right = b;
            this.left = a;
        }
        public long right;
        public long left;
    }

    class Program
    {
        static void Main(string[] args)
        {
            new BG042().slove();
            //Console.WriteLine("続行するには何かキーを押してください．．．");
            //#if DEBUG
            //    Console.ReadLine();
            //#endif

        }
    }

    class BG042
    {
        public decimal Sqrt(decimal x, decimal epsilon = 0.0M)
        {
            if (x < 0) throw new OverflowException("Cannot calculate square root from a negative number");

            decimal current = (decimal)Math.Sqrt((double)x), previous;
            do
            {
                previous = current;
                if (previous == 0.0M) return 0;
                current = (previous + x / previous) / 2;
            }
            while (Math.Abs(previous - current) > epsilon);
            return current;
        }

        public void slove()
        {
            double[] input = getLineDouble();
            var a = Sqrt(decimal.Parse(input[0].ToString()));
            var b = Sqrt(decimal.Parse(input[1].ToString()));
            var c = Sqrt(decimal.Parse(input[2].ToString()));
            puts((a + b) < c ? "Yes" : "No");
        }

        public static double[] getLineDouble()
        {
            return getLine().Select(p => double.Parse(p)).ToArray();
        }

        public static long[] getLineLongs()
        {
            return getLine().Select(p => long.Parse(p)).ToArray();
        }

        public static int[] getLineInts()
        {
            return getLine().Select(p => int.Parse(p)).ToArray();
        }

        public static String[] getLine()
        {
            String line = Console.ReadLine();
            String[] sp = line.Split(' ');
            if (sp.Length == 1)
            {
                //System.out.println(line);
                return new String[] { line };
            }
            else
            {
                return sp;
            }
        }
       

        void puts(Object mes)
        {
            Console.WriteLine(mes);
        }
    }


}