import sys def main(): input = sys.stdin.read().split() N = int(input[0]) M = int(input[1]) P = int(input[2]) A = list(map(int, input[3:3+N])) min_steps = float('inf') for a in A: ai = a a_i = 0 while ai % P == 0: a_i += 1 ai = ai // P b_i = ai product = (P ** a_i) * b_i if product > M: min_steps = min(min_steps, 1) continue if b_i == 1: continue required = M // product k = 0 current = 1 while current <= required: current *= b_i k += 1 steps_i = k * (1 + a_i) candidate = steps_i + 1 min_steps = min(min_steps, candidate) if min_steps == float('inf'): print(-1) else: print(min_steps) if __name__ == "__main__": main()