from bisect import * n=int(input()) a=list(map(int,input().split())) mod=998244353 def f(x): ret=1 for i in range(1,x+1): ret*=i ret%=mod return ret if a[0]<0: if a[-1]<0: print(pow(2,n-1,mod)) else: if 0 in a: place=bisect_right(a,0) print((pow(2,place-2,mod)*pow(2,n-place-1,mod)*3*2)%mod) else: place=bisect_right(a,0) print((2*pow(2,place-1,mod)*pow(2,n-place-1,mod))%mod) else: if 0 in a: print(2*pow(2,n-1,mod)) else: print(pow(2,n-1,mod))