#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;} char wbuf[1<<28]; main(){ char*rp=mmap(0l,1l<<28,1,2,0,0ll); RD(n); RD(k); 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{ memset(wbuf,'0',k); long*wp=(long*)(wbuf+k); 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; } } wbuf[n]=10; write(1,wbuf,n+1); }