BITOP
if (BITOP(byteset, h[l-1], &)) {
BITOP(byteset, n[i], |=), shift[n[i]] = i+1;
if (BITOP(byteset, h[l - 1], &)) {
BITOP(byteset, n[i], |=), shift[n[i]] = i + 1;
if (BITOP(byteset, h[l - 1], &)) {
BITOP(byteset, n[l], |=), shift[n[l]] = l + 1;