#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<algorithm>
#include<queue>
#include<fstream>
#include<bitset>
using namespace std;
int n;
long long total;
vector<vector<int> > sums;
bool works(int a, int b)
{
bitset<32> bit(0);
for (int i = 0; i < 32; i++)
{
int x;
if (a != 0)
x = sums[b][i] - sums[a - 1][i];
else
x = sums[b][i];
if (x > 0)
bit[i] = 1;
}
return (total == bit.to_ulong());
}
int solve(int i)
{
int ans = n - 1;
int a = 0;
int b = n-1;
while (a <= b)
{
int mid = (a + b) / 2;
if (works(i, mid))
{
ans = min(ans, mid);
b = mid - 1;
}
else
a = mid + 1;
}
return ans;
}
int main()
{
cin >> n;
vector<long long> v(n);
total = 0;
for (int i = 0; i < n; i++)
{
cin >> v[i];
total |= v[i];
}
if (total == 0)
{
cout << 1 << endl;
return 0;
}
sums.assign(n,vector<int>(32,0));
for (int i = 0; i < n; i++)
{
if (i != 0)
sums[i] = sums[i - 1];
bitset<32> b(v[i]);
for (int j = 0; j < 32; j++)
if (b[j] == 1)
sums[i][j]++;
}
int ans = n;
for (int i = 0; i < n; i++)
{
int j = solve(i);
if(works(i,j))
ans = min(ans, j - i + 1);
}
cout << ans << endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGFsZ29yaXRobT4KI2luY2x1ZGU8cXVldWU+CiNpbmNsdWRlPGZzdHJlYW0+CiNpbmNsdWRlPGJpdHNldD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAppbnQgbjsKbG9uZyBsb25nIHRvdGFsOwp2ZWN0b3I8dmVjdG9yPGludD4gPiBzdW1zOwogCmJvb2wgd29ya3MoaW50IGEsIGludCBiKQp7CgliaXRzZXQ8MzI+IGJpdCgwKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgMzI7IGkrKykKCXsKCQlpbnQgeDsKCQlpZiAoYSAhPSAwKQoJCQl4ID0gc3Vtc1tiXVtpXSAtIHN1bXNbYSAtIDFdW2ldOwoJCWVsc2UKCQkJeCA9IHN1bXNbYl1baV07CiAKCQlpZiAoeCA+IDApCgkJCWJpdFtpXSA9IDE7Cgl9CgkJCglyZXR1cm4gKHRvdGFsID09IGJpdC50b191bG9uZygpKTsKfQogCmludCBzb2x2ZShpbnQgaSkKewoJaW50IGFucyA9IG4gLSAxOwoJaW50IGEgPSAwOwoJaW50IGIgPSBuLTE7Cgl3aGlsZSAoYSA8PSBiKQoJewoJCWludCBtaWQgPSAoYSArIGIpIC8gMjsKCQlpZiAod29ya3MoaSwgbWlkKSkKCQl7CgkJCWFucyA9IG1pbihhbnMsIG1pZCk7CgkJCWIgPSBtaWQgLSAxOwoJCX0KCQllbHNlCgkJCWEgPSBtaWQgKyAxOwoJfQogCglyZXR1cm4gYW5zOwp9CiAKaW50IG1haW4oKQp7CgljaW4gPj4gbjsKCXZlY3Rvcjxsb25nIGxvbmc+IHYobik7Cgl0b3RhbCA9IDA7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCXsKCQljaW4gPj4gdltpXTsKCQl0b3RhbCB8PSB2W2ldOwoJfQogCglpZiAodG90YWwgPT0gMCkKCXsKCQljb3V0IDw8IDEgPDwgZW5kbDsKCQlyZXR1cm4gMDsKCX0KIAoJc3Vtcy5hc3NpZ24obix2ZWN0b3I8aW50PigzMiwwKSk7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCXsKCQlpZiAoaSAhPSAwKQoJCQlzdW1zW2ldID0gc3Vtc1tpIC0gMV07CgkJYml0c2V0PDMyPiBiKHZbaV0pOwogCgkJZm9yIChpbnQgaiA9IDA7IGogPCAzMjsgaisrKQoJCQlpZiAoYltqXSA9PSAxKQoJCQkJc3Vtc1tpXVtqXSsrOwoJfQogCglpbnQgYW5zID0gbjsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQoJewoJCWludCBqID0gc29sdmUoaSk7CgkJaWYod29ya3MoaSxqKSkKCQkJYW5zID0gbWluKGFucywgaiAtIGkgKyAxKTsKCX0KIAoJY291dCA8PCBhbnMgPDwgZW5kbDsKIAoJcmV0dXJuIDA7Cn0=