T = input() K = int(input()) MOD = 10**9+7 def matrix(a, b): ans = [[0]*len(b[0]) for _ in range(len(a))] for i in range(len(a)): for j in range(len(b[0])): ans[i][j] = sum(a[i][k]*b[k][j]%MOD for k in range(len(b)))%MOD return ans M = [[]] N = len(T) for n in range(7): dp = [[0]*7 for _ in range(N+1)] dp[0][n] = 1 for i in range(N): for j in range(7): dp[i+1][j] += dp[i][j] dp[i+1][j] %= MOD if T[i] == "0": dp[i+1][0] += dp[i][1]+dp[i][6] dp[i+1][0] %= MOD dp[i+1][2] += dp[i][3]+dp[i][1]+dp[i][6] dp[i+1][2] %= MOD dp[i+1][4] += dp[i][5]+2*dp[i][3]+dp[i][1]+dp[i][6] dp[i+1][4] %= MOD else: dp[i+1][1] += dp[i][0]+dp[i][6] dp[i+1][1] %= MOD dp[i+1][3] += dp[i][2]+dp[i][0]+dp[i][6] dp[i+1][3] %= MOD dp[i+1][5] += dp[i][4]+2*dp[i][2]+dp[i][0]+dp[i][6] dp[i+1][5] %= MOD M[0].append(dp[-1]) M[0] = list(map(list, zip(*M[0]))) for _ in range(59): M.append(matrix(M[-1], M[-1])) ansM = [[0] for _ in range(7)] ansM[-1][0] = 1 for i in range(60): if 1<