/**
 * Given a dictionary of photos, count the number of unique tags associated with each photo.
 *
 * @param photos Dictionary containing photo names as keys and their corresponding details as values. The details
 *               include a list of tags associated with each photo.
 * @return Dictionary containing photo names as keys and the corresponding count of unique tags as values.
 */
fun countNumberOfTags(photos: Map<String, Map<String, List<String>>>): Map<String, Int> {

    val tagCounts = mutableMapOf<String, Int>()
    for ((photo, details) in photos) {
        val uniqueTags = details["tags"]?.toSet() ?: emptySet()
        tagCounts[photo] = uniqueTags.size
    }
    return tagCounts
}
/**
 * Given a dictionary of photos, count the number of unique tags associated with each photo.
 *
 * @param photos Dictionary containing photo names as keys and their corresponding details as values. The details
 *               include a list of tags associated with each photo.
 * @return Dictionary containing photo names as keys and the corresponding count of unique tags as values.
 */
fun countNumberOfTags(photos: Map<String, Map<String, List<String>>>): Map<String, Int> {
/**
 * Given a dictionary of photos, count the number of unique tags associated with each photo.
 *
 * @param photos Dictionary containing photo names as keys and their corresponding details as values. The details
 *               include a list of tags associated with each photo.
 * @return Dictionary containing photo names as keys and the corresponding count of unique tags as values.
 */
fun countNumberOfTags(photos: Map<String, Map<String, List<String>>>): Map<String, Int> {

    val tagCounts = mutableMapOf<String, Int>()
    for ((photo, details) in photos) {
        val uniqueTags = details["tags"]?.toSet() ?: emptySet()
        tagCounts[photo] = uniqueTags.size
    }
    return tagCounts
}