## https://yukicoder.me/problems/no/1419 MOD = 10 ** 9 + 7 def main(): N, K = map(int, input().split()) if N % 2 == 1: base_prob = pow(2, MOD - 2, MOD) base_prob = pow(base_prob, K, MOD) mod_n = pow(2, K, N) x = (pow(2, K, MOD) - mod_n) % MOD x *= pow(N, MOD -2, MOD) x %= MOD r = (base_prob * x) % MOD answers = [r] * N index = 0 for _ in range(mod_n): answers[index] += base_prob answers[index] %= MOD index += 2 index %= N else: n = N // 2 base_prob = pow(2, MOD - 2, MOD) base_prob = pow(base_prob, K, MOD) mod_n = pow(2, K, n) x = (pow(2, K, MOD) - mod_n) % MOD x *= pow(n, MOD -2, MOD) x %= MOD r = (base_prob * x) % MOD answers = [0] * N for i in range(0, N, 2): answers[i] = r index = 0 for _ in range(mod_n): answers[index] += base_prob answers[index] %= MOD index += 2 index %= N shift = pow(2, K, N) shift -= 1 shift %= N true_answers = [0] * N for i in range(N): index = (i - shift) % N true_answers[index] = answers[i] for i in range(N): print(true_answers[i]) if __name__ == "__main__": main()