using System; using static System.Console; using System.Linq; using System.Collections.Generic; using System.Runtime.Intrinsics.Arm; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static string[] SList(long n) => Enumerable.Repeat(0, (int)n).Select(_ => ReadLine()).ToArray(); public static void Main() { Solve(); } static void Solve() { var n = NN; var a = ReadLine(); a = a.TrimStart('1').TrimEnd('0'); if (a.Length == 0) { WriteLine(1); return; } var ans = 1L; var mod = 998_244_353; var prev = 0; for (var i = 0; i + 1 < a.Length; ++i) { if (a[i] == '1' && a[i + 1] == '0') { ans = ans * (i - prev + 2) % mod; prev = i + 1; } } ans = ans * (a.Length - prev + 1) % mod; WriteLine(ans); } }