MOD = 10**9 + 7 N, K = map(int, input().split()) inv2 = pow(2, MOD-2, MOD) # Compute term1: K*(K+3)/2 mod MOD k_mod = K % MOD k_plus_3_mod = (K + 3) % MOD term1 = (k_mod * k_plus_3_mod) % MOD term1 = (term1 * inv2) % MOD # Compute term2: K*(K+1)/2 mod MOD k_plus_1_mod = (K + 1) % MOD term2 = (k_mod * k_plus_1_mod) % MOD term2 = (term2 * inv2) % MOD # Compute (term1^N - term2^N) mod MOD term1_pow = pow(term1, N, MOD) term2_pow = pow(term2, N, MOD) ans = (term1_pow - term2_pow) % MOD print(ans)