#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>
int main ( int argc, char * argv[] ) {
int m, n;
bool flag = true;
while( flag ) {
/* a donates height,
* b donates number of worker cats */
long long a, b;
long long sum_a, sum_b;
scanf("%lld %lld", &a, &b);
if(a == 0 && b == 0) {
flag = false;
} else {
if(b == 1) {
sum_a = 0;
sum_b = 0;
while(a >= 1) {
sum_a += 1;
sum_b += a;
a = a / 2;
}
sum_a = sum_a - 1;
printf("%lld %lld\n", sum_a, sum_b);
} else {
/* N should be greater than 1 */
int N;
for(N = 2; N < 10000; N++) {
long long prod = 1;
long long last = 1;
sum_a = last;
int q = 0;
while(prod < b) {
sum_a = last;
last = last * N + 1;
prod = prod * N;
q += 1;
}
if(prod == b) {
int i;
sum_b = 0;
long long dup_a = a;
prod = 1;
bool tick = true;
for(i = 0; i < (q+1); i++) {
sum_b += dup_a * prod;
prod = prod * N;
if(dup_a < 1) tick = false;
dup_a = dup_a / ( 1 + N );
}
if(tick) {
printf("%lld %lld\n", sum_a, sum_b);
N = 10000;
}
}
}
}
}
}
return 0;
}