#include <iostream>
#include <vector>

class B_Day
{
public:
  B_Day(int y, int m, int d)
    : y{y}, m{m}, d{d}
  {}

  bool operator==(B_Day const& rhs) const // used in main
  {
    return m == rhs.m && d == rhs.d;
  }
/*    
  int operator-(B_Day const& rhs) const // not used
  {
    return y - rhs.y;
  }
*/
  int operator-(int year) const // used in free operator-
  {
    return y - year;
  }

  std::string to_string() const // used in main
  {
    return std::to_string(d) + "/" + std::to_string(m);
  }
    
private:
  int y;
  int m;
  int d;
};

int operator-(int year, B_Day const& rhs)
{
  return -(rhs - year);
}

int main()
{
    std::vector<B_Day> group{
    B_Day{1988, 1,26},
    B_Day{1993,11,16},
    B_Day{1989,12,12},
    B_Day{1993, 9,26},
    B_Day{1997, 8,22},
    B_Day{1998, 6,16},
    B_Day{1999,10,16},
    B_Day{1997, 8,17},
    B_Day{1998, 4, 9},
    B_Day{1998, 7,29},
    B_Day{1982,12,28},
    B_Day{1979, 5, 1},
    B_Day{1980, 5, 5},
    B_Day{1995, 7,23},
    B_Day{1996, 2, 3},
    B_Day{1985,11,17},
    B_Day{1996, 2,13},
    B_Day{2001, 5,10},
    B_Day{2000, 3,15},
    B_Day{2000, 5,19},
    B_Day{1998, 8,24},
    B_Day{1994, 3, 8},
    B_Day{1998, 8, 1},
    B_Day{2000, 8,24},
    B_Day{1995,12,26},
    B_Day{2000, 9,12},
    B_Day{2000, 2,22},
    B_Day{1990, 9,27},
    B_Day{1997, 6,29},
    B_Day{1995, 7,10},
    B_Day{1995, 5,11},
    B_Day{1999, 9,26},
    B_Day{1999,12, 1},
    B_Day{1995, 7,15},
    B_Day{1996, 2,22},
    B_Day{1999, 5,17},
    B_Day{1994, 6,17},
    B_Day{1993, 1,25},
    B_Day{1992, 6,16},
    B_Day{1998, 3,25},
    B_Day{1996,10, 1},
    B_Day{2001, 3, 7},
    B_Day{1989, 5,24},
    B_Day{1998, 5,12},
    B_Day{1999, 6,19},
    B_Day{1989, 5, 2},
    B_Day{1998, 7,19},
    B_Day{2000, 6,17},
    B_Day{1991, 8,28},
    B_Day{2001, 5, 6},
    B_Day{1999, 7,27},
    B_Day{2001, 8, 3},
    B_Day{2001, 5,24},
    B_Day{2000, 3,21},
    B_Day{1993, 1,11},
    B_Day{1997,12, 8},
    B_Day{1996,12,21},
    B_Day{1998, 1,29},
    B_Day{2001, 5, 1},
    B_Day{2001,10, 7},
    B_Day{2001,10,14},
    B_Day{2001, 4,15},
    B_Day{2001, 3,28},
    B_Day{2000, 5,22},
    B_Day{1998,12,28},
    B_Day{2001, 3, 5},
    B_Day{1999, 5,10},
    B_Day{1998, 3,25},
    B_Day{2001,11, 5},
    B_Day{1998,12,16},
    B_Day{1999,11,16},
    B_Day{2000, 4,28},
    B_Day{2002, 1,28},
    B_Day{2002, 8, 8},
    B_Day{1999, 2,27},
    B_Day{2002, 5,16},
    B_Day{2002, 6, 6},
    B_Day{2002, 4, 8},
    B_Day{1992, 9,30},
    B_Day{1986, 9, 9},
    B_Day{1994,12,28},
    B_Day{1987,10,14},
    B_Day{1996, 4,27},
    B_Day{1993, 3, 9},
    B_Day{1998, 9, 7},
    B_Day{1993, 2,24},
    B_Day{1998, 1,20},
    B_Day{1997, 8,26},
    B_Day{1997, 5, 9},
    B_Day{1998, 5, 9},
    B_Day{2000, 5,28},
    B_Day{2002, 5, 4},
    B_Day{2001,11,23},
    B_Day{2002, 9,13},
    B_Day{2000, 8,16},
    B_Day{2000, 7,19},
    B_Day{2002, 2,24},
    B_Day{2002, 3,15},
    B_Day{1999, 4, 5},
    B_Day{2001,10,15},
    B_Day{2000,12, 5},
    B_Day{2002, 9, 6},
    B_Day{2002,10,21},
    B_Day{2000,10, 4},
    B_Day{1990, 6,14},
    B_Day{2002, 8, 9},
    B_Day{2001, 3,16},
    B_Day{1986, 6,25},
    B_Day{1999, 8, 2},
    B_Day{1989, 7,10},
    B_Day{1985,12, 3},
    B_Day{1998, 3,27},
    B_Day{1994, 6,29},
    B_Day{1997, 2,13},
    B_Day{2003, 4,10},
    B_Day{2000, 3, 6},
    B_Day{2003, 6,19},
    B_Day{2004, 5,27},
    B_Day{2002, 6, 3},
    B_Day{2003, 9,20},
    B_Day{2002, 9, 4},
    B_Day{2000, 6,11},
    B_Day{2002, 4,17},
    B_Day{2001, 1,23},
    B_Day{2003, 4,22},
    B_Day{2003, 4, 1},
    B_Day{2003, 3, 7},
    B_Day{2000,12, 7},
    B_Day{2003,11,15},
    B_Day{2002,10, 4},
    B_Day{2002, 5,15},
    B_Day{2003, 7,25},
    B_Day{2003, 4,18},
    B_Day{1993, 4,26},
    B_Day{1993, 5,22},
    B_Day{2001, 5,31},
    B_Day{1999, 9,30},
    B_Day{1997, 3,18}
  };
    
  int const year{2024};
  
  for ( B_Day const a : group )
  {
    int sum{};
    int age{year - a};
    
    for ( B_Day const b : group )
    {
      if ( a == b )
        sum = sum + (year - b);
    }
    
    std::cout << a.to_string() << " celebrates " << age;
    if ( sum != age )
    {
      std::cout << " and " << sum;
    }
    std::cout << " years. ";
    
    if ( sum % 10 == 0 || age % 10 == 0)
    {
      std::cout << "Cake!";
    }
    std::cout << std::endl;
  }
    
  return 0;
}