#include <bits/stdc++.h>
using namespace std;
map<long long, int> M;
int main() {
  long long b, q, l, m;
  scanf("%lld%lld%lld%lld", &b, &q, &l, &m);
  while (m--) {
    int a;
    scanf("%d", &a);
    M[a] = 1;
  }
  if (-l > b || b > l)
    puts("0");
  else if (b == 0) {
    if (!M[0])
      puts("inf");
    else
      puts("0");
  } else if (q == 0) {
    if (!M[0])
      puts("inf");
    else if (M[b])
      puts("0");
    else
      puts("1");
  } else if (q == 1) {
    if (M[b])
      puts("0");
    else
      puts("inf");
  } else if (q == -1) {
    if (M[b] && M[-b])
      puts("0");
    else
      puts("inf");
  } else {
    int ans = 0;
    while (-l <= b && b <= l) {
      ans += 1 - M[b];
      b *= q;
    }
    printf("%d\n", ans);
  }
  return 0;
}
