Given a distance matrix of size N x N representing the distance between N cities (indexed 0 to N-1), find the minimum cost to visit all cities exactly once and return to the starting city (city 0).