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 numpy as np
  #
  # n = int(input())
  #
  # m = np.zeros((n, n), dtype=np.bool)
  #
  # for i in range(n):
  #     l = [int(s) for s in list(input())]
  #     m[i]  =l
  # a = np.count_nonzero(m,axis=0)
  # r = np.count_nonzero(np.count_nonzero(m, axis=0) > 1)
  # r = r or -1
  # print(r)
  
  
  n = int(input())
  x = int(input(), 2)
  
  th = 2 ** (n - 1) * 2
  
  
  def calc_1(tmp_k):
      return (tmp_k - 1) / 2
  
  
  def calc_2(tmp_k):
      return tmp_k / 2 + 2 ** (n - 1)
  
  
  def calc_count(tmp_k):
      if tmp_k % 2 == 1:
          new_k = calc_1(tmp_k)
      else:
          new_k = calc_2(tmp_k)
  
      if new_k == k:
          return 1
  
      if tmp_k > new_k > calc_2(tmp_k):
          return False
  
      calc_result = calc_count(new_k)
      if calc_result:
          calc_result += 1
      return calc_result
  
  
  result = 0
  
  for k in range(x + 1):
      calc_result = calc_count(k)
      if calc_result:
          result += calc_result
  
  print(result % 998244353)
  
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"}]