  We consider the task of assigning indivisible goods to a set of agents in a
fair manner. Our notion of fairness is Nash social welfare, i.e., the goal is
to maximize the geometric mean of the utilities of the agents. Each good comes
in multiple items or copies, and the utility of an agent diminishes as it
receives more items of the same good. The utility of a bundle of items for an
agent is the sum of the utilities of the items in the bundle. Each agent has a
utility cap beyond which he does not value additional items. We give a
polynomial time approximation algorithm that maximizes Nash social welfare up
to a factor of $e^{1/{e}} \approx 1.445$. The computed allocation is
Pareto-optimal and approximates envy-freeness up to one item up to a factor of
$2 + \eps$
