I was trying to solve this problem using dp, with states(mask1, mask2, idx), where mask1 tells me how many tables I have covered so far and mask2 tells me what are the tables I have covered so far with 'idx'th group, but it will surely timeout, any other suggestions to improve complexity or are there any other solutions?