If the cluster number is unknow, why not use Hierarchical Clustering instead?
At the begining, every isolated one is a cluster, then every two cluster will be merged if their distance is lower than a threshold, the algorithm will end when no more merger goes.
The Hierarchical clustering algorithm can carry out a suitable "K" for your data.