-100 0 50 1
0
 -1000 0 10 1
5
 -3 1 100 1
3
 1000000000 100000 1000000000 4
5433 13 6 0
 5 1 5 5
1 2 3 4 0
 2 -1 6 1
2
 3 2 30 3
-691070108 -934106649 -220744807
 0 8 5 1
9
 2 -1 1 1
1
 3 2 115 16
24 48 12 96 3 720031148 -367712651 -838596957 558177735 -963046495 -313322487 -465018432 -618984128 -607173835 144854086 178041956
 0 1 1 1
0
 -1000000000 -1000000000 1 1
232512888
 0 2 2143435 4
54343 -13 6 124
 0 69 12 1
1
 3 1 3 1
5
 0 5 8 1
10
 3 2 30 1
3
 2 -1 10 1
2
 -5 -1 10 1
-5
 -1 -1 2143435 4
-1 -123 -5453 141245
 11 0 228 5
-1 0 1 5 -11245
 123 -1 2143435 5
-123 0 123 -5453 141245
 2 2 4 1
2
 3 0 1 1
3
 0 4 1 1
2
 3 2 3 4
6 14 25 48
 3 2 25 2
379195692 -69874783
 -10 1 5 1
100
 1000000000 999999998 1000000000 1
0
 0 3 3 1
1
 1 0 2 1
1
 0 -3 2143435 5
-1 0 1 5 -11245
 11 0 1111 1
11
 2 0 3 1
2
 100 10 2 1
100
 0 5 10 1
2
 123 -1 10000 1
123
 1 5 10000 1
125
 123 0 2143435 4
5433 0 -123 -645
 11 0 228 5
-1 -17 1 5 -11245
 0 23 3 1
3
 3 0 3 1
4
 5 -1 3 1
0
 123 0 2143435 4
5433 0 123 -645
 2 -1 3 1
2
 2 -2 10 1
1
 -3 0 92055 36
-92974174 -486557474 -663622151 695596393 177960746 -563227474 -364263320 -676254242 -614140218 71456762 -764104225 705056581 -106398436 332755134 -199942822 -732751692 658942664 677739866 886535704 183687802 -784248291 -22550621 -938674499 637055091 -704750213 780395802 778342470 -999059668 -794361783 796469192 215667969 354336794 -60195289 -885080928 -290279020 201221317
 -1000 0 100 1
2
 123 -1 2143435 5
-123 0 12 5 -11245
 1 1 1000000000 1
100
 3 0 3 1
0
 1 0 2143435 4
1 -123 -5453 141245
 -3 0 1 1
-3
 2 0 2 1
-1
 123 -1 2143435 4
54343 -13 6 123
 -100 -1 1 1
1
 2 -1 100 1
2
 10 -1 2 1
1
 -1000 0 100 1
-1000
 0 3 100 1
5
 5 2 100 1
5
 -4 1 1 1
0
 -20 0 10 1
0
 -5 0 1 1
1
 10 -1 3 2
10 8
 0 35 2 1
3
 0 5 100 2
34 56
 11 0 2 5
-1 0 1 5 -11245
 0 2 100 1
5
 123 0 125 1
123
 100 0 100000 1
100
 1 -1 1 1
1
 1 -1 2143435 4
1 -123 -5453 141245
 2 2 4 1
3
 15 -1 15 4
15 -15 1 2
 3 2 24 4
6 14 25 48
 1 -1 2 1
1
 123 0 21 4
543453 -123 6 1424
 0 2 30 4
6 14 25 48
 10 10 10 1
123
 2 0 2 1
2
 0 4 1000 3
5 6 7
 -2 0 1 1
1
 0 10 10 1
2
 5 1 2 1
2
 3 3 104 17
9 -73896485 -290898562 5254410 409659728 -916522518 -435516126 94354167 262981034 -375897180 -80186684 -173062070 -288705544 -699097793 -11447747 320434295 503414250
 -10 0 5 1
0
 -3 1 100 1
-3
 0 8 10 1
5
 5 0 20 1
5
 0 0 2143435 5
-1 -153 1 5 -11245
 4 0 4 1
0
 2 0 1 1
2
 5 -1 100 1
5
 1 -2 1000000000 1
0
 0 2 5 1
1
 1 -1 10 1
1

0
 0
 inf
 1
 inf
 inf
 4
 inf
 0
 1
 0
 0
 inf
 inf
 inf
 inf
 3
 inf
 inf
 inf
 1
 0
 1
 0
 inf
 1
 4
 0
 1
 inf
 inf
 0
 inf
 inf
 0
 inf
 inf
 5
 1
 inf
 inf
 inf
 0
 0
 inf
 3
 inf
 0
 inf
 inf
 1
 inf
 0
 inf
 inf
 0
 inf
 0
 0
 inf
 4
 0
 0
 0
 0
 inf
 inf
 0
 inf
 inf
 inf
 inf
 inf
 2
 0
 3
 inf
 0
 inf
 1
 inf
 inf
 0
 inf
 0
 3
 0
 0
 inf
 inf
 inf
 1
 0
 inf
 30
 inf
 inf

//package com.company;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {

    public static void main(String[] args) throws IOException {
        // write your code here
       Scanner s = new Scanner(System.in);
         // BufferedReader s=new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
          long b=s.nextLong();long q=s.nextLong();long l=s.nextLong();int m=s.nextInt();
          long[] a=new long[m];HashMap<Long,Long> h=new HashMap<Long, Long>();
          for(int i=0;i<m;i++){
              a[i]=s.nextLong();
                 h.put(a[i],1L);
          }
          if(q==1){
              if(h.containsKey(b)) System.out.println(0);
              else System.out.println("inf");
          }else if(q==0){
              if(h.containsKey(0)) System.out.println(0);
              else System.out.println("inf");

          }else {long ans=0;
              while(b>=1&&b<=l){
              if(!h.containsKey(b))ans++;b*=q;}
              System.out.println(ans);
          }

    }



    static double power(double x, long y, int p)
    {
        double res = 1;
 x = x % p;
        while (y > 0)
        {
            if((y & 1)==1)
                res = (res * x) % p;
            y = y >> 1;
            x = (x * x) % p;
        }
        return res;
    }
    static int m;
    static int n;
    static int path = Integer.MAX_VALUE;
    static int got = 0;
static Long[] sum;static Long[] a;
    public static long dfs(int i, ArrayList<Integer>[] h, int[] vis) {
        vis[i] = 1;
        sum[i]+=a[i];if(h[i]==null) return sum[i];
        for (Integer j : h[i]) {
            if (vis[j] == 0) {
                sum[i]+=dfs(j, h, vis);
            }
        }return sum[i];
    }static long max=Long.MIN_VALUE;static long max1=Long.MIN_VALUE;
    public static void dfs1(int i, ArrayList<Integer>[] h, int[] vis) {
        vis[i] = 1;//sum[i]+=a[i];
        if(h[i]==null) return ;
        for (Integer j : h[i]) {
            if (vis[ j] == 0) {
                if(sum[j]>max) {max1=max;max=sum[j];}
                else if(sum[j]>max1) max1=sum[j];
                dfs1(j, h, vis);
            }
        }return ;
    }static long fans=Long.MIN_VALUE;
    public static long dfs2(int i, ArrayList<Integer>[] h, int[] vis) {
        long max2=Long.MIN_VALUE;long max3=Long.MIN_VALUE;
        vis[i] = 1;if(h[i]==null) return a[i];
        for (Integer j : h[i]) {
            if (vis[ j] == 0) {
              long k=  dfs2(j, h, vis);
              if(k>max2) { max3=max2;max2=k;}
              else if(k>max3) max3=k;
            }
        }
     //   System.out.println(i+" "+max2+" "+max3+" "+sum[i]);
        if(max2!=Long.MIN_VALUE&&max3!=Long.MIN_VALUE&&max2+max3> fans) fans=max2+max3;
     //   if(i==1) return max2;
        return Math.max(sum[i],max2);
    }

    public static void bfs(int i, HashMap<Integer, Integer>[] h, int[] vis, int len, int papa) {
        Queue<Integer> q = new LinkedList<Integer>();
        q.add(i);

    }


    static int i(String a){
        return Integer.parseInt(a);
    }static long l(String a){
        return Long.parseLong(a);
    }static String[] inp() throws IOException{
        BufferedReader s=new BufferedReader(new InputStreamReader(System.in));
        return s.readLine().trim().split("\\s+");
    }
}

class Student
{
 int t,l,r;
//    String name, address;

    // Constructor
    public Student(int t,int r)
    {this.t=t;

        this.r=r;
    }

    // Used to print student details in main()
    public String toString()
    {
        return this.t + " " +this.l+" "+this.r;
    }
}

class Sortbyroll implements Comparator<Student>
{
    // Used for sorting in ascending order of
    // roll number
    public int compare(Student a, Student b)
    {
        return a.t-b.t;
    }
}