You have an unlimited supply of blocks of each size 1×N, 2×N, ..., N×N. A block may be rotated by 90 degrees before you place it. Blocks must not overlap and must not stick out of the rectangle.
Count the ways to fill an N×M rectangle completely with these blocks, and report that count modulo 1999. Blocks of the same size are interchangeable, so two fillings that cover the rectangle with the same shapes in the same places count as one way.