import java.io.BufferedReader;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
/**
*
* @author cteam020
*/
public class Fl {
while (br.ready()) {
if (line.equals("")) {
continue;
}
st.nextToken();
int pocet=0;
int r
= Integer.
parseInt(st.
nextToken().
trim()); // System.out.println(r);
int x = r + 1;
while (x <= 2 * r) {
if (((r * x) % (x - r)) == 0) {
pocet ++;
}
x++;
}
// int i = 2;
// int max = 2;
// int pocet = 0;
// ArrayList<Integer> primes = new ArrayList<Integer>();
// primes.add(2);
// boolean cont = true;
// while (cont) {
// System.out.println("i:" + i);
// boolean isprime = true;
// for (int p : primes) {
// if (p < i && i % p == 0) {
// i++;
// isprime = false;
// System.out.println("isnotprime");
// break;
//
// }
//
// }
//
// if (isprime) {
// System.out.println("isprime");
// primes.add(i);
// System.out.println(primes);
// System.out.println("prime: " + i);
// cont = false;
// for (int j = 1; j <= i / 2; j++) {
// if (!(j != 1 && (i - j) % j == 0) && (i * r) % j == 0 && (i * r) % (i - j) == 0) {
//
// pocet++;
// cont = true;
// }
// }
//
// i++;
// }
// }
// System.out.println(pocet);
// System.out.println("***********");
}
}
}