#include<bits/stdc++.h>
using namespace std;
int a[100003],c[100003],d[100003],cnt1[100003],ctop,dtop;
bool can[100003];
map<int,int>m;
long long ans=1;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
d[i]=a[i];
}
sort(d+1,d+n+1);
for(int i=1;i<=n;i++)
{
if(i==1||d[i]!=d[i-1])
{
c[++ctop]=d[i];
m[d[i]]=ctop;
}
}
int minn=INT_MAX;
int ans3=1;
for(int i=1;i<=n;i++)
{
if(minn<m[a[i]])cnt1[m[a[i]]]++;
minn=min(minn,m[a[i]]);
}
for(int i=1;i<=ctop;i++)
{
cnt1[i]++;
ans3=(ans3%998244353)*(cnt1[i]%998244353)%998244353;
}
cout<<ans3%998244353;
return 0;
}