Partitioning A Graph In Alliances And Its Application To Data Clustering