The kidney exchange problem: length-constrained cycles and chains optimization on compatibility graphs.