n = gets.to_i a = gets.split.map(&:to_i).uniq.sort a_size = a.size if n < 101 ans = [0] 1.upto(a_size){|i| ans = (ans + ans.map{|m|m ^ a[i-1]}).uniq if ans & a == a break end } p ans.size else m = a.max.to_s(2).length count = m m.times{|i| if a.all?{|v|v[i] == 0} count -= 1 end } p 2 ** count end