#include #include using bs=boost::dynamic_bitset<>; bool cmp(const bs& x,const bs& y){ size_t hx=0,hy=0,mx=0,my=0,cx=0,cy=0,k; while(true){ while(true){ if(0==(k=y.find_first(hy)+1))break; if(cmp(bs(20,k-hy-1),bs(20,my))){hy=k;continue;} my=k-hy-1;hy=k; if(cmp(bs(20,my),bs(20,mx))){cy=0;continue;} cy++; if(cmp(bs(20,mx),bs(20,my)))break; if(cx>N>>M; std::cout<<(cmp(N,M)?"Yes":"No"); }