output_description: Print the sum of the answers to the questions for the integers between 0 and X
  (inclusive), modulo 998244353.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      X
attempt: # import sys
  # input = sys.stdin.readline
  # import heapq
  # from fractions import gcd
  # from collections import defaultdict
  # sys.setrecursionlimit(10**9)
  # map(int,input().split())
  
  
  def main():
      n = int(input())
      x = int(input(), 2)
      ans = [0] * (x + 1)
      tmp = 0
      for i in range(x + 1):
          if ans[i] != 0:
              continue
          else:
              cnt = 0
              tmp = i
              li = [tmp]
              while True:
                  if tmp % 2:
                      tmp = (tmp - 1) // 2
                      li.append(tmp)
                      cnt += 1
                  else:
                      tmp = (tmp // 2) + (2 ** (n - 1))
                      li.append(tmp)
                      cnt += 1
                  if tmp == i:
                      for ii in li:
                          if ii <= x:
                              ans[ii] = cnt
                      break
      print(sum(ans) % 998244353)
  
  
  if __name__ == "__main__":
      main()
  
problem_description: Statement
  
  Given are integers N and X. For each integer k between 0 and X (inclusive),
  find the answer to the following question, then compute the sum of all those
  answers, modulo 998244353.
  
    * Let us repeat the following operation on the integer k. Operation: if the integer is currently odd, subtract 1 from it and divide it by 2; otherwise, divide it by 2 and add 2^{N-1} to it. How many operations need to be performed until k returns to its original value? (The answer is considered to be 0 if k never returns to its original value.)
samples: [{"input": "3\n    111", "output": "40\n    \n\nFor example, for k=3, the operation changes k as follows: 1,0,4,6,7,3.\nTherefore the answer for k=3 is 6.\n\n* * *"}, {"input": "6\n    110101", "output": "616\n    \n\n* * *"}, {"input": "30\n    001110011011011101010111011100", "output": "549320998"}]