#define DO(n,stmts) {I i,_n=(n); for(i=0;i<_n;++i){stmts;}} DO(xn, h=HF(x[i]); while(*h>=0&&x[*h]!=x[i])if(hm==++h)h=h0; if(*h<0)*h=i; ); DO(yn, h=HF(y[i]); while(*h>=0&&x[*h]!=y[i])if(hm==++h)h=h0; *z++=*h<0?xn:*h;);
← h0 ← HF(x[5]) ← hm