#include <cmath>
#include <iomanip>
#include <iostream>
using namespace std;

// 函数用于计算 log_a(x)
double log_base(double x, double base) {
    return std::log(x) / std::log(base);
}

// 函数用于计算 f(x) 的二阶导数 f''(x) = -1/(x^2 * ln(a))
double f_double_prime(double x, double a) {
    return -1.0 / (x * x * std::log(a));
}

// 函数用于计算 f(x) = log_a(x) - bx
double f(double x, double a, double b) {
    return log_base(x, a) - b * x;
}

int main() {
    int a, b;
    cin >> a >> b;
    if ((2 <= a && a <= 1000) && (1 <= b && b <= 1000)) {
        // 计算临界点 x
        double critical_point = 1.0 / (b * std::log(a));
        // 检查临界点是否在定义域内
        if (critical_point <= 0) {
            std::cerr << "Critical point is not in the domain (x > 0)" << std::endl;
            return 1;
        }
        //
        // 计算二阶导数以确认是最大值
        double second_derivative = f_double_prime(critical_point, a);
        if (second_derivative >= 0) {
            std::cerr << "Critical point is not a maximum" << std::endl;
            return 1;
        }
        // 计算最大值
        double max_value = f(critical_point, a, b);

        // 设置输出格式为固定小数点后五位
        std::cout << std::fixed << std::setprecision(10);
        std::cout << max_value << std::endl;
    }
}
// 64 位输出请用 printf("%lld")