We'll consider the whole thing as a possibly quite irregular grid on which we will move. A "point" will mean the vertex of some rectangle, and "moving up once" will mean to move up from a point to the next point directly above, along a side of integer length.

First notice that if a rectangle has one side of integer length then the opposite side is also of integer length. Therefore, given two concurrent sides of a rectangle, one will be of integer length.

Start from the lower left corner. From there you can certainly move up or move right; one of those sides has to be of integer length. From the point you reach then, the same is possible : you can move either up or right. Keep doing that until you reach either the right side or the top side of . If you reach the right side, then has integer width (add up all the right-left travel). Similarily if you reach the top side, then has integer height. Since one of the two must happen, we are done.