#!/usr/bin/python3 # vstup: # # # # .... # from math import sqrt, floor (M, N) = (int(x) for x in input().split()) # Eratosthenovo síto delitel = [None for _ in range(M + 1)] # range skončí před posledním číslem, proto M + 1 for p in range(2, floor(sqrt(M)) + 1): # pro p > sqrt(M) už síto nic nenajde if delitel[p] != None: continue # p není prvočíslo for i in range(p*p, M + 1, p): # násobky p < p*p už dělitele mít musí if delitel[i] is None: # Není nutné, ale zařídí setřízené rozklady delitel[i] = p for _ in range(N): x = int(input()) while delitel[x] is not None: q = delitel[x] print(q,end=" ") x = x // q if x > 1: print(x,end="") print()