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