/* * Author: srtry * Created: 2025-05-25T10:00:29+09:00 * Coding: utf-8-unix */ use proconio::input; use std::io::{stdout,Write,BufWriter}; fn main() { input!{ n:usize, a:[usize;n] } let out = stdout(); let mut out = BufWriter::new(out.lock()); let mut dp:[bool;32768] = [false;32768]; dp[0] = true; let mut ans = 1; for elem in a.iter() { for i in 0..32768 { if !dp[elem^i] && dp[i] { dp[elem^i] = true; ans += 1; } } } write!(out, "{}", ans).unwrap(); }