// Pirvoiu Andrei

// Elena Cuza National College

// Senior/5

// Reading from: input.in

// Output: Console

// Language: C++

 

#include <iostream>

#include <fstream>

#include <string.h>

#include <vector>

#include <iomanip>

#include <stdio.h>

 

using namespace std;

 

int i, j, n;

string s1, s2, s3, temp;

 

string alpha (string &s_temp)

{

      n=s_temp.size();

      for (i=0;i<n-1;i++)

      {

            for (j=i+1;j<n;j++)

            {

                  if (s_temp[i]>s_temp[j])

                  {

                        temp[1]=s_temp[i];

                        s_temp[i]=s_temp[j];

                        s_temp[j]=temp[1];

                  }

            }

      }

      return s_temp;

}

 

int main ()

{

      ifstream f ("input.in");

      if (f==NULL)

      {

            cout<<"File 'input.in' wasn't found.";

            return 0;

      }

      while (!f.eof())

      {

            getline (f, s1, ',');

            s1.erase (remove(s1.begin(), s1.end(), ' '), s1.end());

            cout<<s1<<" - ";

            if (s1.compare("DIVIDE")==0)

            {

                  getline (f, s2);

                  s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

                  string s3 (s2, 0, 4);

                  s3 = alpha (s3);

                  string s4 (s2, 4, 4);

                  s4 = alpha (s4);

                  s3.append (s3);

                  s4.append (s4);

                  cout<<s3<<" and "<<s4<<"\n";

            }

            if (s1.compare("ADD0")==0)

            {

                  getline (f, s2);

                  s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

                  cout<<s2<<"\n";

            }

            if (s1.compare("ADD1")==0)

            {

                  getline (f, s2);

                  s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

                  string s3 (s2, 0, 1);

                  s3.append (s2, 0, 7);

                  cout<<s3<<"\n";

            }

            if (s1.compare("ADD2")==0)

            {

                  getline (f, s2);

                  s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

                  string s3 (s2, 0, 2);

                  s3 = alpha (s3);

                  string s4 (s3, 0, 2);

                  s4.append (s3, 2, 2);

                  s4.append (s2, 2, 2);

                  cout<<s4<<"\n";

            }

            if (s1.compare("ADD3")==0)

            {

                  getline (f, s2);

                  s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

                  string s3 (s2, 0, 3);

                  s3 = alpha (s3);

                  string s4 (s2, 0, 3);

                  s4.append (s3, 0, 3);

                  s4.append (s2, 3, 2);

                  cout<<s4<<"\n";

            }

            if (s1.compare("ADD4")==0)

            {

                  getline (f, s2);

                  s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

                  string s3 (s2, 0, 4);

                  s3 = alpha (s3);

                  string s4 (s2, 0, 4);

                  s4.append (s3, 0, 4);

                  //s4.append (s2, 3, 2);

                  cout<<s4<<"\n";

            }

            if (s1.compare("SUBTRACT0")==0)

            {

                  getline (f, s2);

                  s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

                  cout<<s2<<"\n";

            }

            if (s1.compare("SUBTRACT1")==0)

            {

                  getline (f, s2);

                  s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

                  string s3 (s2, 1, 7);

                  s3.append (s2, 7, 1);

                  cout<<s3<<"\n";

            }

            if (s1.compare("SUBTRACT2")==0)

            {

                  getline (f, s2);

                  s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

                  string s3 (s2, 2, 6);

                  string s4 (s2, 6, 2);

                  s4 = alpha (s4);

                  s3.append (s4, 0, 2);

                  cout<<s3<<"\n";

            }

            if (s1.compare("SUBTRACT3")==0)

            {

                  getline (f, s2);

                  s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

                  string s3 (s2, 3, 5);

                  string s4 (s2, 5, 3);

                  s4 = alpha (s4);

                  s3.append (s4, 0, 3);

                  cout<<s3<<"\n";

            }

            if (s1.compare("SUBTRACT4")==0)

            {

                  getline (f, s2);

                  s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

                  string s3 (s2, 4, 4);

                  string s4 (s2, 4, 4);

                  s4 = alpha (s4);

                  s3.append (s4, 0, 4);

                  cout<<s3<<"\n";

            }

            if (s1.compare("UNION")==0)

            {

                  getline (f, s2, ',');

                  getline (f, s3);

                  s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

                  s3.erase (remove(s3.begin(), s3.end(), ' '), s3.end());

                  string s4 (s2, 4, 4);

                  string s5 (s3, 0, 4);

                  s4 = alpha (s4);

                  s5 = alpha (s5);

                  s4.append (s5, 0, 4);

                  cout<<s4<<"\n";

            }

            if (s1.compare("INTERSECT")==0)

            {

                  getline (f, s2, ',');

                  getline (f, s3);

                  s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

                  s3.erase (remove(s3.begin(), s3.end(), ' '), s3.end());

                  string s4 (s2, 0, 2);

                  s4.append (s2, 6, 2);

                  string s5 (s3, 0, 2);

                  s5.append (s3, 6, 2);

                  s4 = alpha (s4);

                  s5 = alpha (s5);

                  s4.append (s5, 0, 4);

                  cout<<s4<<"\n";

            }

            //s1 = alpha (s1);

            //cout<<s1<<" ";

            //getline (f, s2);

            //s2.erase (remove(s2.begin(), s2.end(), ' '), s2.end());

            //cout<<s2<<"\n";

      }

      return 0;

}