// Cells.cpp : Defines the entry point for the console application.

//Dennis Jeong- Bergen County Academies

 

#include "stdafx.h"

#include <string>

#include <iostream>

#include <fstream>

#include <vector>

#include <queue>

#include <stack>

using namespace std;

 

int _tmain(int argc, _TCHAR* argv[])

{

      for(int counter = 0; counter< 5; ++counter){

 

            vector<char> answer(4);

            answer[0] = 'n';

            answer[1] = 'n';

            answer[2]= 'e';

            answer[3]= 'd';

 

            sort(answer.begin(), answer.begin()+4);

 

            string input;

            cin>>input;

           

            if(input == "DIVIDE"){

                 

                  vector<char> div;

                  string in;

                  cin>>in;

                  //cout<<in<<endl;

 

                 

                  sort(in.begin(), in.begin()+4);

                  sort(in.begin()+4, in.begin()+8);

                  cout<<in.substr(0,4);

                  cout<<in.substr(0,4);

                  cout<<" ";

                  cout<<in.substr(4,8);

                  cout<<in.substr(4,8);

            }

            else if(input == "ADD0"||input == "SUBTRACT0")

            {

                  string in;

                  cin>>in;

                  cout<<in;

            }

            else if(input == "ADD1"||input == "ADD2"||input == "ADD3"||input == "ADD4"){

                  char thing = input[3];

                  int size = thing-'1'+1;

                  string in;

                  cin>>in;

                  vector<char> buff(size);

                  for(int i = 0; i < size; ++i){

                        buff[i] = in[i];

                  }

                  sort(buff.begin(), buff.end());

 

                  for(int i = in.size()-1; i>=size*2; --i){

                        in[i] = in[i-size];

                  }

                  for(int i = size; i< size*2 ; ++i){

                        in[i] = buff[i-size];

                  }

                  cout<<in;

            }

            else if(input == "SUBTRACT1"||input == "SUBTRACT2"||input == "SUBTRACT3"||input == "SUBTRACT4"){

                  char thing = input[8];

                  int size = thing-'1'+1;

           

                  string in;

                  cin>>in;

                  vector<char> buff(size);

                  for(int i = in.size()-size; i < in.size(); ++i){

                        buff[i-in.size()+size] = in[i];

                  }

                  sort(buff.begin(), buff.end());

                  for(int i = 0; i<in.size()-size; ++i){

                        in[i] = in[i+size];

                  }

                  for(int i = in.size()-size; i< in.size(); ++i){

                        in[i] = buff[i-in.size()+size];

                  }

                  cout<<in;

            }

            else if(input == "UNION"){

                  string a, b;

                  cin>>a;

                  cin>>b;

 

                  sort(a.begin()+4, a.begin()+8);

                  sort(b.begin(), b.begin()+4);

                  cout<<a.substr(4,8);

                  cout<<b.substr(0,4);

            }

            else if(input == "INTERSECT"){

                  string a, b;

                  cin>>a;

                  cin>>b;

 

                  a = a.substr(0,2) +a.substr(6,8);

                  b = b.substr(0,2) +b.substr(6,8);

                 

                  sort(a.begin(), a.end());

                  sort(b.begin(),b.end());

                  cout<<a;

                  cout<<b;

            }

 

 

            cout<<"\ndone\n";

      }

}