#include <iostream>
#include <vector>
using namespace std;
// Khai báo biến toàn cục
int n; // Số lượng xâu
int res = 0; // Biến lưu kết quả
int need = (1 << 26) - 1; // Tổng OR cần đạt được
vector<int> mask; // Mảng lưu giá trị của từng xâu
// Hàm quay lui để tính toán số cách chọn xâu
void ql(int id, int val) {
// id là vị trí xâu đang xét tới
// val là tổng OR của các xâu đã được chọn
// Kiểm tra xem giá trị OR đã đạt được yêu cầu chưa
if (val == need) {
res++; // Tăng kết quả nếu đạt yêu cầu
}
// Điều kiện dừng của đệ quy
if (id > n) return;
// Nếu chọn xâu id
ql(id + 1, val | mask[id]);
// Nếu không chọn xâu id
ql(id + 1, val);
}
int main() {
cin >> n;
mask.resize(n + 1);
for (int i = 1; i <= n; i++) {
cin >> mask[i];
}
ql(1, 0);
cout <<res << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEtoYWkgYsOhbyBiaeG6v24gdG/DoG4gY+G7pWMKaW50IG47ICAgICAgICAgICAgICAvLyBT4buRIGzGsOG7o25nIHjDonUKaW50IHJlcyA9IDA7ICAgICAgIC8vIEJp4bq/biBsxrB1IGvhur90IHF14bqjCmludCBuZWVkID0gKDEgPDwgMjYpIC0gMTsgLy8gVOG7lW5nIE9SIGPhuqduIMSR4bqhdCDEkcaw4bujYwp2ZWN0b3I8aW50PiBtYXNrOyAgLy8gTeG6o25nIGzGsHUgZ2nDoSB0cuG7iyBj4bunYSB04burbmcgeMOidQoKLy8gSMOgbSBxdWF5IGx1aSDEkeG7gyB0w61uaCB0b8OhbiBz4buRIGPDoWNoIGNo4buNbiB4w6J1CnZvaWQgcWwoaW50IGlkLCBpbnQgdmFsKSB7CiAgICAvLyBpZCBsw6AgduG7iyB0csOtIHjDonUgxJFhbmcgeMOpdCB04bubaQogICAgLy8gdmFsIGzDoCB04buVbmcgT1IgY+G7p2EgY8OhYyB4w6J1IMSRw6MgxJHGsOG7o2MgY2jhu41uCgogICAgLy8gS2nhu4NtIHRyYSB4ZW0gZ2nDoSB0cuG7iyBPUiDEkcOjIMSR4bqhdCDEkcaw4bujYyB5w6p1IGPhuqd1IGNoxrBhCiAgICBpZiAodmFsID09IG5lZWQpIHsKICAgICAgICByZXMrKzsgIC8vIFTEg25nIGvhur90IHF14bqjIG7hur91IMSR4bqhdCB5w6p1IGPhuqd1CiAgICB9CgogICAgLy8gxJBp4buBdSBraeG7h24gZOG7q25nIGPhu6dhIMSR4buHIHF1eQogICAgaWYgKGlkID4gbikgcmV0dXJuOwoKICAgIC8vIE7hur91IGNo4buNbiB4w6J1IGlkCiAgICBxbChpZCArIDEsIHZhbCB8IG1hc2tbaWRdKTsKCiAgICAvLyBO4bq/dSBraMO0bmcgY2jhu41uIHjDonUgaWQKICAgIHFsKGlkICsgMSwgdmFsKTsKfQoKaW50IG1haW4oKSB7CiAgICBjaW4gPj4gbjsKICAgIAogICAgbWFzay5yZXNpemUobiArIDEpOyAgCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gbWFza1tpXTsKICAgIH0KCiAgICBxbCgxLCAwKTsKICAgIGNvdXQgPDxyZXMgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=