#include <math.h>
#include <stdio.h>
#include <stdlib.h>

static double expected_different(double keyspace, double subset)
{
	return keyspace * (1.0 - pow((keyspace - 1.0) / keyspace, subset));
}

int main(int argc, char **argv) {
	double unique, total, keyspace, min, max;

	if (argc != 3)
		return 1;

	unique = atof(argv[1]);
	total = atof(argv[2]);

	min = 0; max = pow(62, 8);
	do {
		keyspace = (min + max) * 0.5;
		if (expected_different(keyspace, total) > unique)
			max = keyspace;
		else
			min = keyspace;
	} while (max - min > 0.5);

	printf("%.0f\n", keyspace);
	return 0;
}
