#include <algorithm>
int binary_search(const unsigned *a, int n, unsigned x)
{
int ne = x*0.023283064365386963;
unsigned *b = std::lower_bound(a+std::max(0,ne-4000), a + std::min(100000000,ne+4000), x);
if(b) return b-a;
return std::lower_bound(a+std::max(0,ne-40000), a + std::min(100000000,ne+40000), x) - a;
}