from math import e import sys, time, random from collections import deque, Counter, defaultdict def debug(*x):print('debug:',*x, file=sys.stderr) input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) mi = lambda: map(int, input().split()) li = lambda: list(mi()) inf = 2 ** 61 - 1 mod = 998244353 n = ii() c = li() if 0 in c: z = True c.remove(0) else: z = False if len(c) == 0: print(1) exit() if min(c) > 0 or max(c) < 0: ans = pow(2, len(c) - 1, mod) ans *= (z + 1) ans %= mod print(ans) exit() plus = 0 minus = 0 for v in c: if v > 0: plus += 1 else: minus += 1 #p-m ans = 2 * pow(2, plus - 1, mod) * pow(2, minus - 1, mod) if z: ans *= 3 print(ans % mod)