#include <bits/stdc++.h>
using namespace std;
inline int gi() {
  int data = 0, fu = 1;
  char ch = 0;
  while (ch != '-' && (ch < '0' || ch > '9')) ch = getchar();
  if (ch == '-') fu = -1, ch = getchar();
  while ('0' <= ch && ch <= '9')
    data = (data << 1) + (data << 3) + (ch ^ 48), ch = getchar();
  return data * fu;
}
int f[100005][205][2];
int n, A[100005];
inline void Merge(int i) {
  for (int j = 1; j <= 200; ++j) {
    f[i][j][0] = (f[i][j - 1][0] + f[i][j][0]) % 998244353;
    f[i][j][1] = (f[i][j - 1][1] + f[i][j][1]) % 998244353;
  }
  return;
}
int main() {
  n = gi();
  for (int i = 1; i <= n; ++i) A[i] = gi();
  if (A[1] != -1)
    f[1][A[1]][0] = 1;
  else
    for (int i = 1; i <= 200; ++i) f[1][i][0] = 1;
  Merge(1);
  for (int i = 2; i <= n; ++i) {
    for (int j = 1; j <= 200; ++j)
      if (A[i] == -1 || A[i] == j) {
        f[i][j][1] =
            (f[i - 1][j][0] - f[i - 1][j - 1][0] + 998244353) % 998244353;
        f[i][j][1] =
            (f[i][j][1] +
             (f[i - 1][200][1] - f[i - 1][j - 1][1] + 998244353) % 998244353) %
            998244353;
        f[i][j][0] = (f[i - 1][j - 1][0] + f[i - 1][j - 1][1]) % 998244353;
      }
    Merge(i);
  }
  cout << f[n][200][1] << endl;
  return 0;
}
