./match is a front-end that reads an instance from stdin and prints the matching
to stdout.
-<<< FIXME: Adapt the following for popl2012 branch >>>
-Input: A tab-separated array with one column per reviewer. The first row gives
-the relative loads of the reviewers. Thereafter, each row gives the preference
-values (1 to 39, 40 = conflict of interest) of all reviewers for a single
-proposal. See the example.in.
+Input: A tab-separated array with a header row followed by two rows per proposal
+and a header column followed by one column per reviewer. The header row
+specifies the relative loads of the reviewers as integers. The header column
+specifies the number of reviews each proposal must receive, in the first of the
+proposal's two rows.
+
+The remainder of the array contains, for each (proposal, reviewer) pair, a
+preference value (an integer from 100, best, to -99, worst, with -100 indicating
+conflict of interest) and below it, an expertise value (an integer from 3, best,
+to 0, worst). The preference value may optionally be followed by a * to require
+that that (proposal, reviewer) pair be matched in the output. This way, if the
+user obtains a matching and the reviewers start working and then minor changes
+to the input are needed, the user can request a matching that still includes
+most of the reviews already started.
+
+See the example.in.
Reviewers and proposals are numbered from 0 in the order they appear in the
input.