#include <bits/stdc++.h>
long long a[1000001];
void find(long long t, long long n, long long s) {
  long long i;
  for (i = 1; i <= s; i++) {
    if (t < a[i]) {
      printf("%I64d\n", (n - i + 2 >= 0) ? n - i + 2 : 0);
      return;
    }
  }
}
int main() {
  long long i;
  long long k, b, n, t;
  scanf("%I64d%I64d%I64d%I64d", &k, &b, &n, &t);
  a[1] = 1;
  for (i = 2; a[i - 1] <= 1000000; i++) {
    a[i] = k * a[i - 1] + b;
  }
  find(t, n, i);
  return 0;
}
