I am dealing with a variant of the problem of maximum two-part correspondence. The original problem is this:
There are M vacancies and N tasks. Each applicant has a subset of the jobs that interest him. Each job opening can only accept one applicant, and a job candidate can only be assigned to one job. Find a job assignment for applicants so that as many applicants as possible get jobs.

An additional limitation is as follows:
. . - , .
/ !