Rainbow piercing

Rainbow piercing is a problem in computational geometry.

Definitions
There is a set P of n colored points on the real line, and a set J of intervals on the real line.

A subset Q of P is called a rainbow set if it contains at most a single point of each color.

A set of points Q is called a piercing set of J if each interval in J contains at least one point of Q.

The Rainbow piercing problem is the problem of finding a rainbow set Q that is a piercing set for J.

Hardness
The problem is NP-hard. The proof is by reduction from linear SAT.