3 conditions for greedy check