Finding an optimal seating chart