#include <algorithm>
#include <climits>
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
// 质因数分解
void decompose_prime(vector<int>& factor, int a)
{
    int i = 2;
    while(a != 1)
        {
            if(a % i == 0)
            {
                ++factor[i];
                a /= i;
            }
            else ++i;
        }
}

int main() {
    int n, a, ret, i, j, tmp;
    while (cin >> n >> a) 
    { 
        int size = 1000;
        // 保存每一项质因数的指数
        vector<int> factor_n(size, 0), factor_a(size, 0);
        // 分解a
        decompose_prime(factor_a, a);

        // 分解n!
        for(i = 2; i <= n; ++i)
        {
            // 分解阶乘的每一项
            decompose_prime(factor_n, i);
        }
        // 选最大的幂次
        i = INT_MAX;
        for(j = 2; j < size; ++j)
        {
            if(factor_a[j] == 0) continue;
            else
            {
                // k = factor_n[j]/factor_a[j]
                i = min(i, factor_n[j]/factor_a[j]);
            }
        }
        cout << i << endl;
    }
}