A tree-search algorithm for ML decoding in underdetermined MIMO systems