#pragma GCC optimize("Ofast") #pragma GCC target("avx2") char*mmap(); #define RD(v) int v=0;{int _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;} long wbuf[1<<25]; char rbuf[1<<12]; main(){ read(0,rbuf,sizeof rbuf); char*rp=rbuf; RD(n); RD(k); int off=0; if(k<4){ if(k==1&n>2|k==2&n>4|k==3&n>8){ strcpy(wbuf,"-1"); n=2; }else{ strcpy(wbuf,k==1?"01":k==2?"0011":"00010111"); } }else{ off=7&-k; memset(wbuf,'0',off+k); long*wp=wbuf+(off+k>>3); long v0=*(long*)"10110010"; long v1=*(long*)"11001011"; long v2=*(long*)"00101100"; for(int j=n-k;j>0;j-=24){ *wp++=v0; *wp++=v1; *wp++=v2; } } *((char*)wbuf+off+n)=10; write(1,(char*)wbuf+off,n+1); }