module Main; import CPLib.Arithmetic::power; import CPLib.IO; import CPLib.ZP; // import BinaryHeap; // import BoolArray; // import CPLib.Arithmetic; // import CPLib.Bipartite; // import CPLib.Bits; // import CPLib.Convolution; // import CPLib.DSegtree; // import CPLib.Graph; // import CPLib.LDSegtree; // import CPLib.LSegtree; // import CPLib.MaxFlow; // import CPLib.Memoize; // import CPLib.MinCostFlow; // import CPLib.Misc; // import CPLib.Monoid; // import CPLib.Segtree; // import CPLib.String; // import CPLib.Trait; // import CPLib.TwoSat; // import CPLib.UnionFind; // import HashMap; // import HashSet; type Z = ZP P1000000007; main : IO () = ( let n = *read_i; let ps = *read_is(n); let a = ps.to_iter.filter(|p| p > 50).get_size; let b = ps.to_iter.filter(|p| p < 50).get_size; let ans = if a == 0 { 0 } else { (zp(2) : Z).power(a+b-1).@value.i64 }; ans.to_string.println;; pure() );