*Problem Statement:*

There are K containers each with a capacity vector defined in three dimensions as *(X[i], Y[i], Z[i]), 1 <= i <= 15, i.e., 1 <= K <= 15.*

When an object of capacity (a, b, c) is put into container of capacity (A, B, C), the containers remaining capacity becomes **(A — a, B — b, C — c)**.

There are N objects of varying capcities to be put into containers. **Determine if the all objects can be fit into the containers or not. If they can fit, also determine which object must be put in which container.**

(1 <= N <= 150). The capacity ranges fit an integer.

An exact solution would be amazing, but a good heuristic that might be able to solve this problem reasonably well is much appreciated. Any ideas?