import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
//перебор с отсечением по времени
//работает потому что правельный вариант перебирается первым
public class key_aa_slow_cheat {

	public static void main(String[] args) throws IOException {
		t = System.currentTimeMillis();
		Scanner in = new Scanner(new FileReader("key.in"));
		PrintWriter out = new PrintWriter("key.out");
		int n = in.nextInt();
		int p = in.nextInt();
		bf(p, n, new int[n]);
		out.println(max);
		out.close();
	}

	private static long t;

	private static int max = 0;

	private static void bf(int p, int n, int[] a) {
		if (n == 0) {
			int sum = 0;
			for (int i : a) {
				sum += i;
			}
			max = Math.max(max, sum);
			return;
		}
		if (System.currentTimeMillis() - t > 1800) {
			return;
		}
		for (int i = 1; i * i <= p; i++) {
			if (p % i == 0) {
				a[n - 1] = p / i;
				bf(i, n - 1, a);
				a[n - 1] = i;
				bf(p / i, n - 1, a);
			}
		}
	}

}
