#include <bits/stdc++.h>
using namespace std;
long long n, k, b, t;
long long mymax(int a, int b) {
  if (a > b)
    return a;
  else
    return b;
}
int main() {
  cin >> k >> b >> n >> t;
  long long x = 1;
  for (int i = 0; i < n; i++) {
    x = k * x + b;
    if (x > 1e9) break;
  }
  if (x <= t) {
    cout << 0;
    return 0;
  }
  if (k == 1) {
    for (int i = 1; i <= n; i++)
      if (t + i * b >= 1 + n * b) {
        cout << i;
        return 0;
      }
  } else {
    int ans = n;
    while (t >= pow(1.0 * k, 1.0 * (n - ans)) +
                    b * (pow(1.0 * k, 1.0 * (n - ans)) - 1) * 1.0 / (k - 1))
      ans--;
    if (ans + 1 < 0)
      cout << 0;
    else
      cout << ans + 1;
  }
  cin >> n;
  return 0;
}
