#include <iostream>
using namespace std;

class Test
{
public:
    enum class Fruit
    {
      apple,
      banana,
      orange,
      pineapple,
      lemon
    };
    
    friend Fruit operator++(Fruit& f)
    {
      switch (f)
      {
      case Fruit::apple: return f = Fruit::banana;
      case Fruit::banana: return f = Fruit::orange;
      case Fruit::orange: return f = Fruit::pineapple;
      case Fruit::pineapple: return f = Fruit::lemon;
      case Fruit::lemon: return f = Fruit::apple;
      }
    }
    
    friend std::ostream& operator<<( std::ostream& os, const Fruit &fruit )
    {
      switch( fruit )
      {
      case Fruit::apple: os << "apple"; break;
      case Fruit::banana: os << "banana"; break;
      case Fruit::orange: os << "orange"; break;
      }
      return os;
    }
};

int main() {
	// your code goes here
	Test::Fruit f = Test::Fruit::banana;
 
	cout << ++f << endl;
 
	return 0;
}
