#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 50, mod = 998244353;
void work(vector<int>& a) {
for (int i = 1; i < a.size(); i++)
a[i] = (a[i] + a[i - 1]) % mod;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
int a[n+1]{};
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
if (n == 2) {
int ans = 0;
if (!~a[1] && !~a[2]) ans = 200;
else if (!~a[1] || !~a[2]) ans = 1;
else ans = (a[1] == a[2]);
cout << ans << endl;
return 0;
}
vector<vector<int>> x, y;
vector<int> dp1(201, 0);
if (a[1] == -1)
for (int i = 1; i <= 200; i++)
dp1[i] = 1;
else dp1[a[1]] = 1;
x.push_back(dp1);
work(dp1);
for (int i = 2; i <= n; i++) {
vector<int> ndp1(201);
if (a[i] != -1) {
ndp1[a[i]] = dp1[a[i]];
}
else {
ndp1 = dp1;
}
x.push_back(ndp1);
dp1 = ndp1;
work(dp1);
}
vector<int> dp2(201, 0);
if (a[n] == -1)
for (int i = 1; i <= 200; i++)
dp2[i] = 1;
else dp2[a[n]] = 1;
y.push_back(dp2);
work(dp2);
for (int i = n - 1; i >= 1; i--) {
vector<int> ndp2(201);
if (~a[i]) {
ndp2[a[i]] = dp2[a[i]];
}
else {
ndp2 = dp2;
}
y.push_back(ndp2);
dp2 = ndp2;
work(dp2);
}
reverse(y.begin(), y.end());
int ans = 0;
for (int i = 0; i < n; i++) {
for (int j = 1; j <= 200; j++) {
int add = 1ll * x[i][j] * y[i][j] % mod;
ans = (ans + add) % mod;
}
}
cout << ans << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBOID0gMWU1ICsgNTAsIG1vZCA9IDk5ODI0NDM1MzsKCnZvaWQgd29yayh2ZWN0b3I8aW50PiYgYSkgewogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBhLnNpemUoKTsgaSsrKQogICAgYVtpXSA9IChhW2ldICsgYVtpIC0gMV0pICUgbW9kOwp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNpbi50aWUobnVsbHB0cik7CgkKCWludCBuOwoJY2luID4+IG47CglpbnQgYVtuKzFde307Cglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKCSAgICBjaW4gPj4gYVtpXTsKCX0KCQoJaWYgKG4gPT0gMikgewoJICAgIGludCBhbnMgPSAwOwoJICAgIGlmICghfmFbMV0gJiYgIX5hWzJdKSBhbnMgPSAyMDA7CgkgICAgZWxzZSBpZiAoIX5hWzFdIHx8ICF+YVsyXSkgYW5zID0gMTsKCSAgICBlbHNlIGFucyA9IChhWzFdID09IGFbMl0pOwoJICAgIGNvdXQgPDwgYW5zIDw8IGVuZGw7CgkgICAgcmV0dXJuIDA7Cgl9CgkKCXZlY3Rvcjx2ZWN0b3I8aW50Pj4geCwgeTsKCQoJdmVjdG9yPGludD4gZHAxKDIwMSwgMCk7CglpZiAoYVsxXSA9PSAtMSkKCSAgICBmb3IgKGludCBpID0gMTsgaSA8PSAyMDA7IGkrKykKCSAgICAgICAgZHAxW2ldID0gMTsKCWVsc2UgZHAxW2FbMV1dID0gMTsKCXgucHVzaF9iYWNrKGRwMSk7CgkKCXdvcmsoZHAxKTsKCQoJZm9yIChpbnQgaSA9IDI7IGkgPD0gbjsgaSsrKSB7CgkgICAgdmVjdG9yPGludD4gbmRwMSgyMDEpOwoJICAgIAoJICAgIGlmIChhW2ldICE9IC0xKSB7CgkgICAgICAgIG5kcDFbYVtpXV0gPSBkcDFbYVtpXV07CgkgICAgfQoJICAgIGVsc2UgewoJICAgICAgICBuZHAxID0gZHAxOwoJICAgIH0KCSAgICB4LnB1c2hfYmFjayhuZHAxKTsKCSAgICBkcDEgPSBuZHAxOwoJICAgIHdvcmsoZHAxKTsKCX0KCQoJdmVjdG9yPGludD4gZHAyKDIwMSwgMCk7CglpZiAoYVtuXSA9PSAtMSkKCSAgICBmb3IgKGludCBpID0gMTsgaSA8PSAyMDA7IGkrKykKCSAgICAgICAgZHAyW2ldID0gMTsKCWVsc2UgZHAyW2Fbbl1dID0gMTsKCXkucHVzaF9iYWNrKGRwMik7Cgl3b3JrKGRwMik7CgkKCWZvciAoaW50IGkgPSBuIC0gMTsgaSA+PSAxOyBpLS0pIHsKCSAgICB2ZWN0b3I8aW50PiBuZHAyKDIwMSk7CgkgICAgCgkgICAgaWYgKH5hW2ldKSB7CgkgICAgICAgIG5kcDJbYVtpXV0gPSBkcDJbYVtpXV07CgkgICAgfQoJICAgIGVsc2UgewoJICAgICAgICBuZHAyID0gZHAyOwoJICAgIH0KCSAgICB5LnB1c2hfYmFjayhuZHAyKTsKCSAgICBkcDIgPSBuZHAyOwoJICAgIHdvcmsoZHAyKTsKCX0KCXJldmVyc2UoeS5iZWdpbigpLCB5LmVuZCgpKTsKCQoJaW50IGFucyA9IDA7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJZm9yIChpbnQgaiA9IDE7IGogPD0gMjAwOyBqKyspIHsKCSAgICAgICAgaW50IGFkZCA9IDFsbCAqIHhbaV1bal0gKiB5W2ldW2pdICUgbW9kOwoJICAgICAgICBhbnMgPSAoYW5zICsgYWRkKSAlIG1vZDsKCSAgICB9Cgl9CgkKCWNvdXQgPDwgYW5zIDw8IGVuZGw7CgkKCXJldHVybiAwOwp9Cg==