// ===================================
// author: M_sea
// website: http://m-sea-blog.com/
// ===================================
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>
#define re register
using namespace std;
inline int read() {
int X=0,w=1; char c=getchar();
while (c<'0'||c>'9') { if (c=='-') w=-1; c=getchar(); }
while (c>='0'&&c<='9') X=X*10+c-'0',c=getchar();
return X*w;
}
const int N=500+10;
const int mod=998244353;
inline void add(int& x,int y) { x=(x+y)%mod; }
int n,m,c[N];
int dp[N][N];
int main() {
n=read(),m=read();
for (re int i=1;i<=m;++i) c[i]=read();
for (re int i=0;i<=m;++i) dp[i+1][i]=1;
for (re int l=1;l<=m;++l)
for (re int i=1,j=i+l-1;j<=m;++i,++j) {
int mn=1e9,p;
for (re int k=i;k<=j;++k)
if (c[k]<mn) mn=c[k],p=k;
int L=0,R=0;
for (re int k=i;k<=p;++k)
add(L,1ll*dp[i][k-1]*dp[k][p-1]%mod);
for (re int k=p;k<=j;++k)
add(R,1ll*dp[p+1][k]*dp[k+1][j]%mod);
dp[i][j]=1ll*L*R%mod;
}
printf("%d\n",dp[1][m]);
return 0;
}