naive ( O(N3) )