using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static void Main() { var n = NN; var a = NList; var mod = 998_244_353; var ncnt = new Dictionary(); var ecnt = new Dictionary(); for (var i = 0; i < n; ++i) { var add = 0L; if (ncnt.ContainsKey(a[i] - 1)) { add = (ncnt[a[i] - 1] + ecnt[a[i] - 1]) % mod; } if (ncnt.ContainsKey(a[i])) { ncnt[a[i]] += 1; ecnt[a[i]] = (ecnt[a[i]] + add) % mod; } else { ncnt[a[i]] = 1; ecnt[a[i]] = add; } } var res = 0L; foreach (var kv in ecnt) res = (res + kv.Value) % mod; WriteLine(res); } }