#include using namespace std; using ll = long long int; #define rep(i, n) for (int i = 0; i < (int)n; i++) int mod_inv(int i, int mod) { int x = i; int y = mod, u = 1, v = 0; while (y) { int t = x / y; x -= t * y; swap(x, y); u -= t * v; swap(u, v); } return (u + mod) % mod; } int mod_div(int x, int y, int mod) { return ((ll)x * mod_inv(y, mod)) % mod; } int mod_pow(int i, int y, int mod) { int x = i; int ret = 1; while (y > 0) { if ((y & 0x01) != 0) ret = (long long)ret * x % mod; x = (long long)x * x % mod; y >>= 1; } return ret; } int main() { const int mod = 998244353; int n; cin >> n; vector cm, cp; int czn = 0; rep(i, n) { int c; cin >> c; if (c < 0) cm.push_back(-c); else if (c > 0) cp.push_back(c); else czn++; } int cmn = (int)cm.size(); int cpn = (int)cp.size(); int a = 1, b = 1; if (cmn > 0) a = mod_pow(2, cmn - 1, mod); if (cpn > 0) b = mod_pow(2, cpn - 1, mod); int ans = ((ll)a * (ll)b * 2) % mod; if (czn > 0) { if (cmn > 0 && cpn > 0) ans = ((ll)ans * 3) % mod; else if (cmn > 0 || cpn > 0) ans = ((ll)ans * 2) % mod; } cout << ans << endl; }