import sys import re N = input().strip() A = input().strip() result = 0 dic = [int(A, 2)] test = [int(A, 2)] while True: target = test[0] str_target = bin(target)[2:].zfill(int(N)) index = [m.start() for m in re.finditer("01", str_target)] num = len(index) for i in range(num): target_ind = index[i] target_change1 = str_target[:target_ind] + "1" + str_target[target_ind+1:] if not(int(target_change1, 2) in dic): dic.append(int(target_change1, 2)) test.append(int(target_change1, 2)) target_change0 = str_target[:target_ind+1] + "0" + str_target[target_ind+2:] if not(int(target_change0, 2) in dic): dic.append(int(target_change0, 2)) test.append(int(target_change0, 2)) test.pop(0) result += 1 if test == []: break modulo = result % 998244353 print(modulo)