static void Main(string[] args)
 {
     var distances = new BiDictionary<string, string, int>();
     distances.Add("Sofia", "Varna", 443);
     distances.Add("Sofia", "Varna", 468);
     distances.Add("Sofia", "Varna", 490);
     distances.Add("Sofia", "Plovdiv", 145);
     distances.Add("Sofia", "Bourgas", 383);
     distances.Add("Plovdiv", "Bourgas", 253);
     distances.Add("Plovdiv", "Bourgas", 292);
     distances.Add("Varna", "Bourgas", 292);
     var distancesFromSofia = distances.FindByFirstKey("Sofia"); // [443, 468, 490, 145, 383]
     var distancesToBourgas = distances.FindBySecoundKey("Bourgas"); // [383, 253, 292]
     var distancesPlovdivBourgas = distances.FindByBothKeys("Plovdiv", "Bourgas"); // [253, 292]
     var distancesRousseVarna = distances.FindByBothKeys("Rousse", "Varna"); // []
     var distancesSofiaVarna = distances.FindByBothKeys("Sofia", "Varna"); // [443, 468, 490]
     distances.Remove("Sofia", "Varna"); // true
     var distancesFromSofiaAgain = distances.FindByFirstKey("Sofia"); // [145, 383]
     var distancesToVarna = distances.FindBySecoundKey("Varna"); // []
     var distancesToVarn1a = distances.FindByFirstKey("Varna"); // []
     var distancesSofiaVarnaAgain = distances.FindByBothKeys("Sofia", "Varna"); // []
 }