first pass at row-permuting diff