Это для сценария, когда каждый с каждым не обязан встречаться в рамках одного заезда. Если же обязан, то нужно заполнить таблицу N*N с выбитой главной диагональю, на пересечении ряда и колонки пишем, в какой заезд эта пара сравнивается. И НОК здесь тоже работает - таблицу придется продлить или вправо, или вниз на целое число раз, пока количество заполняемых ячеек, расположенных выше главной диагонали в каждом из таких квадратов, не станет делиться на M. То есть, надо вычислить НОК(N*(N-1)/2;M) - потребуется столько памяти.