#include <bits/stdc++.h>
using namespace std;
long long g[510][510];
long long c[510];
long long f[510][510];
const long long mod = 998244353;
int n, m;
long long cal1(int l, int r) {
  if (l >= r)
    return 1;
  else
    return f[l][r];
}
long long cal2(int l, int r) {
  if (l >= r)
    return 1;
  else
    return g[l][r];
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; i++) scanf("%lld", &c[i]);
  for (int len = 1; len <= m; len++) {
    for (int l = 1; l + len - 1 <= m; l++) {
      int r = l + len - 1;
      int mid = l;
      for (int i = l; i <= r; i++) {
        if (c[i] < c[mid]) {
          mid = i;
        }
      }
      g[l][r] = cal1(l, mid - 1) * cal1(mid + 1, r) % mod;
      for (int i = l; i <= r; i++) {
        f[l][r] += (cal2(l, i) * cal1(i + 1, r) % mod);
        f[l][r] %= mod;
      }
    }
  }
  printf("%lld\n", f[1][n]);
}
