Polycarp thinks about the meaning of life very often. He does this constantly, even when typing in the editor. Every time he starts brooding he can no longer fully concentrate and repeatedly presses the keys that need to be pressed only once. For example, instead of the phrase "how are you" he can type "hhoow aaaare yyoouu". Polycarp decided to automate the process of correcting such errors. He decided to write a plug-in to the text editor that will remove pairs of identical consecutive letters (if there are any in the text). Of course, this is not exactly what Polycarp needs, but he's got to start from something! Help Polycarp and write the main plug-in module. Your program should remove from a string all pairs of identical letters, which are consecutive. If after the removal there appear new pairs, the program should remove them as well. Technically, its work should be equivalent to the following: while the string contains a pair of consecutive identical letters, the pair should be deleted. Note that deleting of the consecutive identical letters can be done in any order, as any order leads to the same result.

The input data consists of a single line to be processed. The length of the line is from 1 to 2·105 characters inclusive. The string contains only lowercase Latin letters.

Print the given string after it is processed. It is guaranteed that the result will contain at least one character.

const {EOL} = require('os')

let ipt = ''
process.stdin.on('data', s => ipt += s)
process.stdin.on('end', () => {
  let L = ipt.split(EOL).slice(0, -1)[0]
  let l = []
  for (let i = 0; i < L.length; i++) {
    while (L[i] == l[l.length - 1]) {
      i++
      l.pop()
    }
    l.push(L[i])
  }
  console.log(l.join(''))
})

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('data', (input) => { stdinInput += input;});
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s;
function main() {
    const is = new Scanner();

    while((s = is.nextLine())!==false){

    //     let l = []
    //     let len = s.length;
    // for (let i = 0; i < len; i++) {
    //     while (s[i] == l[l.length - 1]) {
    //     i++
    //     l.pop()
    //     }
    //     l.push(s[i])
    // }
    // console.log(l.join(''))

        let len = s.length;
        let a = [], n;
        n=0;
    for(let i=0; i<len; i++){
        if(n>0){
            if(s[i]==a[n-1]){
                a.pop();
                n--;
            }else{
                a.push(s[i]);
                n++;
            }
        }else{
            a.push(s[i]);
            n++;
        }
    }
    // console.log(a.join(''))
    // for(let i=0; i<n; i++)
    //     process.stdout.write(a[i]);
    process.stdout.write(a.join('')+'\n');

    // let tam = [];
    // let chay;
    // if(len==1)
	// 	{
	// 		process.stdout.write(s+'\n');
	// 		return;
	// 	}
	// 	chay=0;
	// 	for(i=0; i<len; i++)
	// 	{
	// 		if(chay==0)
	// 		{
	// 			tam[chay]=s[i];
	// 			chay++;
	// 		}
	// 		else
	// 		{
	// 			if(s[i]==tam[chay-1])
	// 			{

	// 				chay--;
	// 			}
	// 			else
	// 			{
	// 				tam[chay]=s[i];
	// 				chay++;
	// 			}
	// 		}
	// 	}
	// 	for(let i=0; i<chay; i++)
    //         process.stdout.write(tam[i]);
    //     process.stdout.write('\n');
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

// function solve(s){
//     // let a = [300000];
//     // let n=0;
//     let len = s.length;
//     // for(let i=0; i<len; i++){
//     //     if(n>0){
//     //         if(s[i]==a[n-1]){
//     //             n--;
//     //         }else{
//     //             a[n] = s[i];
//     //             n++;
//     //         }
//     //     }else{
//     //         a[n] = s[i];
//     //         n++;
//     //     }
//     // }
//     // // console.log(n);
//     // for(let i=0; i<n; i++)
//     //     process.stdout.write(a[i]);
//     //     process.stdout.write('\n');

//     let tam = [];
//     let chay;
//     if(len==1)
// 		{
// 			process.stdout.write(s+'\n');
// 			return;
// 		}
// 		chay=0;
// 		for(i=0; i<len; i++)
// 		{
// 			if(chay==0)
// 			{
// 				tam[chay]=s[i];
// 				chay++;
// 			}
// 			else
// 			{
// 				if(s[i]==tam[chay-1])
// 				{

// 					chay--;
// 				}
// 				else
// 				{
// 					tam[chay]=s[i];
// 					chay++;
// 				}
// 			}
// 		}
// 		for(let i=0; i<chay; i++)
//             process.stdout.write(tam[i]);
//         process.stdout.write('\n');
// }

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('data', (input) => { stdinInput += input;});
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s;
function main() {
    const is = new Scanner();

    while((s = is.nextLine())!==false){

    //     let l = []
    //     let len = s.length;
    // for (let i = 0; i < len; i++) {
    //     while (s[i] == l[l.length - 1]) {
    //     i++
    //     l.pop()
    //     }
    //     l.push(s[i])
    // }
    // console.log(l.join(''))

        let len = s.length;
        let a = [], n;
        n=0;
    for(let i=0; i<len; i++){
        if(n>0){
            if(s[i]==a[n-1]){
                a.pop();
                n--;
            }else{
                a.push(s[i]);
                n++;
            }
        }else{
            a.push(s[i]);
            n++;
        }
    }
    console.log(a.join(''))
    // for(let i=0; i<n; i++)
    //     process.stdout.write(a[i]);
    // process.stdout.write('\n');

    // let tam = [];
    // let chay;
    // if(len==1)
	// 	{
	// 		process.stdout.write(s+'\n');
	// 		return;
	// 	}
	// 	chay=0;
	// 	for(i=0; i<len; i++)
	// 	{
	// 		if(chay==0)
	// 		{
	// 			tam[chay]=s[i];
	// 			chay++;
	// 		}
	// 		else
	// 		{
	// 			if(s[i]==tam[chay-1])
	// 			{

	// 				chay--;
	// 			}
	// 			else
	// 			{
	// 				tam[chay]=s[i];
	// 				chay++;
	// 			}
	// 		}
	// 	}
	// 	for(let i=0; i<chay; i++)
    //         process.stdout.write(tam[i]);
    //     process.stdout.write('\n');
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

// function solve(s){
//     // let a = [300000];
//     // let n=0;
//     let len = s.length;
//     // for(let i=0; i<len; i++){
//     //     if(n>0){
//     //         if(s[i]==a[n-1]){
//     //             n--;
//     //         }else{
//     //             a[n] = s[i];
//     //             n++;
//     //         }
//     //     }else{
//     //         a[n] = s[i];
//     //         n++;
//     //     }
//     // }
//     // // console.log(n);
//     // for(let i=0; i<n; i++)
//     //     process.stdout.write(a[i]);
//     //     process.stdout.write('\n');

//     let tam = [];
//     let chay;
//     if(len==1)
// 		{
// 			process.stdout.write(s+'\n');
// 			return;
// 		}
// 		chay=0;
// 		for(i=0; i<len; i++)
// 		{
// 			if(chay==0)
// 			{
// 				tam[chay]=s[i];
// 				chay++;
// 			}
// 			else
// 			{
// 				if(s[i]==tam[chay-1])
// 				{

// 					chay--;
// 				}
// 				else
// 				{
// 					tam[chay]=s[i];
// 					chay++;
// 				}
// 			}
// 		}
// 		for(let i=0; i<chay; i++)
//             process.stdout.write(tam[i]);
//         process.stdout.write('\n');
// }

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('data', (input) => { stdinInput += input;});
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s;
function main() {
    const is = new Scanner();

    while((s = is.nextLine())!==false){

        let l = []
        let len = s.length;
    for (let i = 0; i < len; i++) {
        while (s[i] == l[l.length - 1]) {
        i++
        l.pop()
        }
        l.push(s[i])
    }
    console.log(l.join(''))

    //     let len = s.length;
    //     let a = [], n;
    //     n=0;
    // for(let i=0; i<len; i++){
    //     if(n>0){
    //         if(s[i]==a[n-1]){
    //             n--;
    //         }else{
    //             a[n] = s[i];
    //             n++;
    //         }
    //     }else{
    //         a[n] = s[i];
    //         n++;
    //     }
    // }

    // for(let i=0; i<n; i++)
    //     process.stdout.write(a[i]);
    // process.stdout.write('\n');

    // let tam = [];
    // let chay;
    // if(len==1)
	// 	{
	// 		process.stdout.write(s+'\n');
	// 		return;
	// 	}
	// 	chay=0;
	// 	for(i=0; i<len; i++)
	// 	{
	// 		if(chay==0)
	// 		{
	// 			tam[chay]=s[i];
	// 			chay++;
	// 		}
	// 		else
	// 		{
	// 			if(s[i]==tam[chay-1])
	// 			{

	// 				chay--;
	// 			}
	// 			else
	// 			{
	// 				tam[chay]=s[i];
	// 				chay++;
	// 			}
	// 		}
	// 	}
	// 	for(let i=0; i<chay; i++)
    //         process.stdout.write(tam[i]);
    //     process.stdout.write('\n');
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

// function solve(s){
//     // let a = [300000];
//     // let n=0;
//     let len = s.length;
//     // for(let i=0; i<len; i++){
//     //     if(n>0){
//     //         if(s[i]==a[n-1]){
//     //             n--;
//     //         }else{
//     //             a[n] = s[i];
//     //             n++;
//     //         }
//     //     }else{
//     //         a[n] = s[i];
//     //         n++;
//     //     }
//     // }
//     // // console.log(n);
//     // for(let i=0; i<n; i++)
//     //     process.stdout.write(a[i]);
//     //     process.stdout.write('\n');

//     let tam = [];
//     let chay;
//     if(len==1)
// 		{
// 			process.stdout.write(s+'\n');
// 			return;
// 		}
// 		chay=0;
// 		for(i=0; i<len; i++)
// 		{
// 			if(chay==0)
// 			{
// 				tam[chay]=s[i];
// 				chay++;
// 			}
// 			else
// 			{
// 				if(s[i]==tam[chay-1])
// 				{

// 					chay--;
// 				}
// 				else
// 				{
// 					tam[chay]=s[i];
// 					chay++;
// 				}
// 			}
// 		}
// 		for(let i=0; i<chay; i++)
//             process.stdout.write(tam[i]);
//         process.stdout.write('\n');
// }

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('data', (input) => { stdinInput += input;});
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s;
function main() {
    const is = new Scanner();

    while((s = is.nextLine())!==false){

        let l = []
    for (let i = 0; i < s.length; i++) {
        while (s[i] == l[l.length - 1]) {
        i++
        l.pop()
        }
        l.push(s[i])
    }
    console.log(l.join(''))

    //     let len = s.length;
    //     let a = [], n;
    //     n=0;
    // for(let i=0; i<len; i++){
    //     if(n>0){
    //         if(s[i]==a[n-1]){
    //             n--;
    //         }else{
    //             a[n] = s[i];
    //             n++;
    //         }
    //     }else{
    //         a[n] = s[i];
    //         n++;
    //     }
    // }

    // for(let i=0; i<n; i++)
    //     process.stdout.write(a[i]);
    // process.stdout.write('\n');

    // let tam = [];
    // let chay;
    // if(len==1)
	// 	{
	// 		process.stdout.write(s+'\n');
	// 		return;
	// 	}
	// 	chay=0;
	// 	for(i=0; i<len; i++)
	// 	{
	// 		if(chay==0)
	// 		{
	// 			tam[chay]=s[i];
	// 			chay++;
	// 		}
	// 		else
	// 		{
	// 			if(s[i]==tam[chay-1])
	// 			{

	// 				chay--;
	// 			}
	// 			else
	// 			{
	// 				tam[chay]=s[i];
	// 				chay++;
	// 			}
	// 		}
	// 	}
	// 	for(let i=0; i<chay; i++)
    //         process.stdout.write(tam[i]);
    //     process.stdout.write('\n');
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

// function solve(s){
//     // let a = [300000];
//     // let n=0;
//     let len = s.length;
//     // for(let i=0; i<len; i++){
//     //     if(n>0){
//     //         if(s[i]==a[n-1]){
//     //             n--;
//     //         }else{
//     //             a[n] = s[i];
//     //             n++;
//     //         }
//     //     }else{
//     //         a[n] = s[i];
//     //         n++;
//     //     }
//     // }
//     // // console.log(n);
//     // for(let i=0; i<n; i++)
//     //     process.stdout.write(a[i]);
//     //     process.stdout.write('\n');

//     let tam = [];
//     let chay;
//     if(len==1)
// 		{
// 			process.stdout.write(s+'\n');
// 			return;
// 		}
// 		chay=0;
// 		for(i=0; i<len; i++)
// 		{
// 			if(chay==0)
// 			{
// 				tam[chay]=s[i];
// 				chay++;
// 			}
// 			else
// 			{
// 				if(s[i]==tam[chay-1])
// 				{

// 					chay--;
// 				}
// 				else
// 				{
// 					tam[chay]=s[i];
// 					chay++;
// 				}
// 			}
// 		}
// 		for(let i=0; i<chay; i++)
//             process.stdout.write(tam[i]);
//         process.stdout.write('\n');
// }

var i, a = [], s = readline();
for (i = 0; i < s.length; i++)
	if (s[i] === a[a.length - 1]) a.pop();
	else a.push(s[i]);

print(a.join(''));

;(function () {

	print(function (s) {
		for (var i = 0, _i = s.length, t = []; i < _i; i++) {
			t[['push', 'pop'][Number(s[i] === t.slice(-1)[0])]](s[i]);
		} return t.join('');
	}(readline()));

}.call(this));

const {EOL} = require('os')

let ipt = ''
process.stdin.on('data', s => ipt += s)
process.stdin.on('end', () => {
  let L = ipt.split(EOL).slice(0, -1)[0]
  let l
  do {
    l = L
    L = L.replace(/(\w)\1+/g, '')
      } while (l != L)
  console.log(L)
})

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('data', (input) => { stdinInput += input;});
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s;
function main() {
    const is = new Scanner();

    while((s = is.nextLine())!==false){
        let len = s.length;
        let a = [], n;
        n=0;
    for(let i=0; i<len; i++){
        if(n>0){
            if(s[i]==a[n-1]){
                n--;
            }else{
                a[n] = s[i];
                n++;
                console.log(a);
            }
        }else{
            a[n] = s[i];
            n++;
        }
    }

    for(let i=0; i<n; i++)
        process.stdout.write(a[i]);
    process.stdout.write('\n');

    // let tam = [];
    // let chay;
    // if(len==1)
	// 	{
	// 		process.stdout.write(s+'\n');
	// 		return;
	// 	}
	// 	chay=0;
	// 	for(i=0; i<len; i++)
	// 	{
	// 		if(chay==0)
	// 		{
	// 			tam[chay]=s[i];
	// 			chay++;
	// 		}
	// 		else
	// 		{
	// 			if(s[i]==tam[chay-1])
	// 			{

	// 				chay--;
	// 			}
	// 			else
	// 			{
	// 				tam[chay]=s[i];
	// 				chay++;
	// 			}
	// 		}
	// 	}
	// 	for(let i=0; i<chay; i++)
    //         process.stdout.write(tam[i]);
    //     process.stdout.write('\n');
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

// function solve(s){
//     // let a = [300000];
//     // let n=0;
//     let len = s.length;
//     // for(let i=0; i<len; i++){
//     //     if(n>0){
//     //         if(s[i]==a[n-1]){
//     //             n--;
//     //         }else{
//     //             a[n] = s[i];
//     //             n++;
//     //         }
//     //     }else{
//     //         a[n] = s[i];
//     //         n++;
//     //     }
//     // }
//     // // console.log(n);
//     // for(let i=0; i<n; i++)
//     //     process.stdout.write(a[i]);
//     //     process.stdout.write('\n');

//     let tam = [];
//     let chay;
//     if(len==1)
// 		{
// 			process.stdout.write(s+'\n');
// 			return;
// 		}
// 		chay=0;
// 		for(i=0; i<len; i++)
// 		{
// 			if(chay==0)
// 			{
// 				tam[chay]=s[i];
// 				chay++;
// 			}
// 			else
// 			{
// 				if(s[i]==tam[chay-1])
// 				{

// 					chay--;
// 				}
// 				else
// 				{
// 					tam[chay]=s[i];
// 					chay++;
// 				}
// 			}
// 		}
// 		for(let i=0; i<chay; i++)
//             process.stdout.write(tam[i]);
//         process.stdout.write('\n');
// }

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('readable', (input) => { stdinInput += input; });
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
      console.log(this.lines);
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s;
function main() {
    const is = new Scanner();

    while((s = is.nextLine())!==false){
        console.log(s);
        let len = s.length;
        let a = [], n;
        n=0;
    for(let i=0; i<len; i++){
        if(n>0){
            if(s[i]==a[n-1]){
                n--;
            }else{
                a[n] = s[i];
                n++;
                console.log(a);
            }
        }else{
            a[n] = s[i];
            n++;
        }
    }

    for(let i=0; i<n; i++)
        process.stdout.write(a[i]);
    process.stdout.write('\n');

    // let tam = [];
    // let chay;
    // if(len==1)
	// 	{
	// 		process.stdout.write(s+'\n');
	// 		return;
	// 	}
	// 	chay=0;
	// 	for(i=0; i<len; i++)
	// 	{
	// 		if(chay==0)
	// 		{
	// 			tam[chay]=s[i];
	// 			chay++;
	// 		}
	// 		else
	// 		{
	// 			if(s[i]==tam[chay-1])
	// 			{

	// 				chay--;
	// 			}
	// 			else
	// 			{
	// 				tam[chay]=s[i];
	// 				chay++;
	// 			}
	// 		}
	// 	}
	// 	for(let i=0; i<chay; i++)
    //         process.stdout.write(tam[i]);
    //     process.stdout.write('\n');
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

// function solve(s){
//     // let a = [300000];
//     // let n=0;
//     let len = s.length;
//     // for(let i=0; i<len; i++){
//     //     if(n>0){
//     //         if(s[i]==a[n-1]){
//     //             n--;
//     //         }else{
//     //             a[n] = s[i];
//     //             n++;
//     //         }
//     //     }else{
//     //         a[n] = s[i];
//     //         n++;
//     //     }
//     // }
//     // // console.log(n);
//     // for(let i=0; i<n; i++)
//     //     process.stdout.write(a[i]);
//     //     process.stdout.write('\n');

//     let tam = [];
//     let chay;
//     if(len==1)
// 		{
// 			process.stdout.write(s+'\n');
// 			return;
// 		}
// 		chay=0;
// 		for(i=0; i<len; i++)
// 		{
// 			if(chay==0)
// 			{
// 				tam[chay]=s[i];
// 				chay++;
// 			}
// 			else
// 			{
// 				if(s[i]==tam[chay-1])
// 				{

// 					chay--;
// 				}
// 				else
// 				{
// 					tam[chay]=s[i];
// 					chay++;
// 				}
// 			}
// 		}
// 		for(let i=0; i<chay; i++)
//             process.stdout.write(tam[i]);
//         process.stdout.write('\n');
// }

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('readable', (input) => { stdinInput += input; });
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s1, s2;
function main() {
    const is = new Scanner();

    while((s1 = is.nextLine())!==false){
        solve(s1);
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

function solve(s){
    // let a = [300000];
    // let n=0;
    let len = s.length;
    // for(let i=0; i<len; i++){
    //     if(n>0){
    //         if(s[i]==a[n-1]){
    //             n--;
    //         }else{
    //             a[n] = s[i];
    //             n++;
    //         }
    //     }else{
    //         a[n] = s[i];
    //         n++;
    //     }
    // }
    // // console.log(n);
    // for(let i=0; i<n; i++)
    //     process.stdout.write(a[i]);
    //     process.stdout.write('\n');

    let tam = [];
    let chay;
    if(len==1)
		{
			process.stdout.write(s+'\n');
			return;
		}
		chay=0;
		for(i=0; i<len; i++)
		{
			if(chay==0)
			{
				tam[chay]=s[i];
				chay++;
			}
			else
			{
				if(s[i]==tam[chay-1])
				{

					chay--;
				}
				else
				{
					tam[chay]=s[i];
					chay++;
				}
			}
		}
		for(let i=0; i<chay; i++)
            process.stdout.write(tam[i]);
        process.stdout.write('\n');
}

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('readable', (input) => { stdinInput += input; });
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s1, s2;
function main() {
    const is = new Scanner();

    while((s1 = is.nextLine())!==false){
        solve(s1);
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

function solve(s1){
    // let a = [300000];
    // let n=0;
    let len = s1.length;
    // for(let i=0; i<len; i++){
    //     if(n>0){
    //         if(s[i]==a[n-1]){
    //             n--;
    //         }else{
    //             a[n] = s[i];
    //             n++;
    //         }
    //     }else{
    //         a[n] = s[i];
    //         n++;
    //     }
    // }
    // // console.log(n);
    // for(let i=0; i<n; i++)
    //     process.stdout.write(a[i]);
    //     process.stdout.write('\n');

    let tam = [];
    let chay;
    if(len==1)
		{
			process.stdout.write(s1+'\n');
			return;
		}
		chay=0;
		for(i=0; i<len; i++)
		{
			if(chay==0)
			{
				tam[chay]=s1[i];
				chay++;
			}
			else
			{
				if(s1[i]==tam[chay-1])
				{

					chay--;
				}
				else
				{
					tam[chay]=s1[i];
					chay++;
				}
			}
		}
		for(let i=0; i<chay; i++)
            process.stdout.write(tam[i]);
        process.stdout.write('\n');
}

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('readable', (input) => { stdinInput += input; });
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s;
function main() {
    const is = new Scanner();

    while((s = is.nextLine())!==false){
        let len = s.length;
        let a = [], n;
        n=0;
    for(let i=0; i<len; i++){
        if(n>0){
            if(s[i]==a[n-1]){
                n--;
            }else{
                a[n] = s[i];
                n++;
            }
        }else{
            a[n] = s[i];
            n++;
        }
    }
    console.log(a);
    for(let i=0; i<n; i++)
        process.stdout.write(a[i]);
    process.stdout.write('\n');

    // let tam = [];
    // let chay;
    // if(len==1)
	// 	{
	// 		process.stdout.write(s+'\n');
	// 		return;
	// 	}
	// 	chay=0;
	// 	for(i=0; i<len; i++)
	// 	{
	// 		if(chay==0)
	// 		{
	// 			tam[chay]=s[i];
	// 			chay++;
	// 		}
	// 		else
	// 		{
	// 			if(s[i]==tam[chay-1])
	// 			{

	// 				chay--;
	// 			}
	// 			else
	// 			{
	// 				tam[chay]=s[i];
	// 				chay++;
	// 			}
	// 		}
	// 	}
	// 	for(let i=0; i<chay; i++)
    //         process.stdout.write(tam[i]);
    //     process.stdout.write('\n');
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

// function solve(s){
//     // let a = [300000];
//     // let n=0;
//     let len = s.length;
//     // for(let i=0; i<len; i++){
//     //     if(n>0){
//     //         if(s[i]==a[n-1]){
//     //             n--;
//     //         }else{
//     //             a[n] = s[i];
//     //             n++;
//     //         }
//     //     }else{
//     //         a[n] = s[i];
//     //         n++;
//     //     }
//     // }
//     // // console.log(n);
//     // for(let i=0; i<n; i++)
//     //     process.stdout.write(a[i]);
//     //     process.stdout.write('\n');

//     let tam = [];
//     let chay;
//     if(len==1)
// 		{
// 			process.stdout.write(s+'\n');
// 			return;
// 		}
// 		chay=0;
// 		for(i=0; i<len; i++)
// 		{
// 			if(chay==0)
// 			{
// 				tam[chay]=s[i];
// 				chay++;
// 			}
// 			else
// 			{
// 				if(s[i]==tam[chay-1])
// 				{

// 					chay--;
// 				}
// 				else
// 				{
// 					tam[chay]=s[i];
// 					chay++;
// 				}
// 			}
// 		}
// 		for(let i=0; i<chay; i++)
//             process.stdout.write(tam[i]);
//         process.stdout.write('\n');
// }

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('readable', (input) => { stdinInput += input; });
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s;
function main() {
    const is = new Scanner();

    while((s = is.nextLine())!==false){
        let len = s.length;
        let a = [], n;
        n=0;
    for(let i=0; i<len; i++){
        if(n>0){
            if(s[i]==a[n-1]){
                n--;
            }else{
                a[n] = s[i];
                n++;
            }
        }else{
            a[n] = s[i];
            n++;
        }
    }
    // console.log(n);
    for(let i=0; i<n; i++)
        process.stdout.write(a[i]);
        process.stdout.write('\n');

    // let tam = [];
    // let chay;
    // if(len==1)
	// 	{
	// 		process.stdout.write(s+'\n');
	// 		return;
	// 	}
	// 	chay=0;
	// 	for(i=0; i<len; i++)
	// 	{
	// 		if(chay==0)
	// 		{
	// 			tam[chay]=s[i];
	// 			chay++;
	// 		}
	// 		else
	// 		{
	// 			if(s[i]==tam[chay-1])
	// 			{

	// 				chay--;
	// 			}
	// 			else
	// 			{
	// 				tam[chay]=s[i];
	// 				chay++;
	// 			}
	// 		}
	// 	}
	// 	for(let i=0; i<chay; i++)
    //         process.stdout.write(tam[i]);
    //     process.stdout.write('\n');
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

// function solve(s){
//     // let a = [300000];
//     // let n=0;
//     let len = s.length;
//     // for(let i=0; i<len; i++){
//     //     if(n>0){
//     //         if(s[i]==a[n-1]){
//     //             n--;
//     //         }else{
//     //             a[n] = s[i];
//     //             n++;
//     //         }
//     //     }else{
//     //         a[n] = s[i];
//     //         n++;
//     //     }
//     // }
//     // // console.log(n);
//     // for(let i=0; i<n; i++)
//     //     process.stdout.write(a[i]);
//     //     process.stdout.write('\n');

//     let tam = [];
//     let chay;
//     if(len==1)
// 		{
// 			process.stdout.write(s+'\n');
// 			return;
// 		}
// 		chay=0;
// 		for(i=0; i<len; i++)
// 		{
// 			if(chay==0)
// 			{
// 				tam[chay]=s[i];
// 				chay++;
// 			}
// 			else
// 			{
// 				if(s[i]==tam[chay-1])
// 				{

// 					chay--;
// 				}
// 				else
// 				{
// 					tam[chay]=s[i];
// 					chay++;
// 				}
// 			}
// 		}
// 		for(let i=0; i<chay; i++)
//             process.stdout.write(tam[i]);
//         process.stdout.write('\n');
// }

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('readable', (input) => { stdinInput += input; });
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s;
function main() {
    const is = new Scanner();

    while((s = is.nextLine())!==false){
        let len = s.length;
        let a = [], n;
        n=0;
    for(let i=0; i<len; i++){
        if(n>0){
            if(s[i]==a[n-1]){
                n--;
            }else{
                a[n] = s[i];
                n++;
                console.log(a);
            }
        }else{
            a[n] = s[i];
            n++;
        }
    }

    for(let i=0; i<n; i++)
        process.stdout.write(a[i]);
    process.stdout.write('\n');

    // let tam = [];
    // let chay;
    // if(len==1)
	// 	{
	// 		process.stdout.write(s+'\n');
	// 		return;
	// 	}
	// 	chay=0;
	// 	for(i=0; i<len; i++)
	// 	{
	// 		if(chay==0)
	// 		{
	// 			tam[chay]=s[i];
	// 			chay++;
	// 		}
	// 		else
	// 		{
	// 			if(s[i]==tam[chay-1])
	// 			{

	// 				chay--;
	// 			}
	// 			else
	// 			{
	// 				tam[chay]=s[i];
	// 				chay++;
	// 			}
	// 		}
	// 	}
	// 	for(let i=0; i<chay; i++)
    //         process.stdout.write(tam[i]);
    //     process.stdout.write('\n');
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

// function solve(s){
//     // let a = [300000];
//     // let n=0;
//     let len = s.length;
//     // for(let i=0; i<len; i++){
//     //     if(n>0){
//     //         if(s[i]==a[n-1]){
//     //             n--;
//     //         }else{
//     //             a[n] = s[i];
//     //             n++;
//     //         }
//     //     }else{
//     //         a[n] = s[i];
//     //         n++;
//     //     }
//     // }
//     // // console.log(n);
//     // for(let i=0; i<n; i++)
//     //     process.stdout.write(a[i]);
//     //     process.stdout.write('\n');

//     let tam = [];
//     let chay;
//     if(len==1)
// 		{
// 			process.stdout.write(s+'\n');
// 			return;
// 		}
// 		chay=0;
// 		for(i=0; i<len; i++)
// 		{
// 			if(chay==0)
// 			{
// 				tam[chay]=s[i];
// 				chay++;
// 			}
// 			else
// 			{
// 				if(s[i]==tam[chay-1])
// 				{

// 					chay--;
// 				}
// 				else
// 				{
// 					tam[chay]=s[i];
// 					chay++;
// 				}
// 			}
// 		}
// 		for(let i=0; i<chay; i++)
//             process.stdout.write(tam[i]);
//         process.stdout.write('\n');
// }

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('readable', (input) => { stdinInput += input; console.log(input)});
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
      console.log(this.lines);
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s;
function main() {
    const is = new Scanner();

    while((s = is.nextLine())!==false){
        console.log(s);
        let len = s.length;
        let a = [], n;
        n=0;
    for(let i=0; i<len; i++){
        if(n>0){
            if(s[i]==a[n-1]){
                n--;
            }else{
                a[n] = s[i];
                n++;
                console.log(a);
            }
        }else{
            a[n] = s[i];
            n++;
        }
    }

    for(let i=0; i<n; i++)
        process.stdout.write(a[i]);
    process.stdout.write('\n');

    // let tam = [];
    // let chay;
    // if(len==1)
	// 	{
	// 		process.stdout.write(s+'\n');
	// 		return;
	// 	}
	// 	chay=0;
	// 	for(i=0; i<len; i++)
	// 	{
	// 		if(chay==0)
	// 		{
	// 			tam[chay]=s[i];
	// 			chay++;
	// 		}
	// 		else
	// 		{
	// 			if(s[i]==tam[chay-1])
	// 			{

	// 				chay--;
	// 			}
	// 			else
	// 			{
	// 				tam[chay]=s[i];
	// 				chay++;
	// 			}
	// 		}
	// 	}
	// 	for(let i=0; i<chay; i++)
    //         process.stdout.write(tam[i]);
    //     process.stdout.write('\n');
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

// function solve(s){
//     // let a = [300000];
//     // let n=0;
//     let len = s.length;
//     // for(let i=0; i<len; i++){
//     //     if(n>0){
//     //         if(s[i]==a[n-1]){
//     //             n--;
//     //         }else{
//     //             a[n] = s[i];
//     //             n++;
//     //         }
//     //     }else{
//     //         a[n] = s[i];
//     //         n++;
//     //     }
//     // }
//     // // console.log(n);
//     // for(let i=0; i<n; i++)
//     //     process.stdout.write(a[i]);
//     //     process.stdout.write('\n');

//     let tam = [];
//     let chay;
//     if(len==1)
// 		{
// 			process.stdout.write(s+'\n');
// 			return;
// 		}
// 		chay=0;
// 		for(i=0; i<len; i++)
// 		{
// 			if(chay==0)
// 			{
// 				tam[chay]=s[i];
// 				chay++;
// 			}
// 			else
// 			{
// 				if(s[i]==tam[chay-1])
// 				{

// 					chay--;
// 				}
// 				else
// 				{
// 					tam[chay]=s[i];
// 					chay++;
// 				}
// 			}
// 		}
// 		for(let i=0; i<chay; i++)
//             process.stdout.write(tam[i]);
//         process.stdout.write('\n');
// }

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('data', (input) => { stdinInput += input;});
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s;
function main() {
    const is = new Scanner();

    while((s = is.nextLine())!==false){

    //     let l = []
    //     let len = s.length;
    // for (let i = 0; i < len; i++) {
    //     while (s[i] == l[l.length - 1]) {
    //     i++
    //     l.pop()
    //     }
    //     l.push(s[i])
    // }
    // console.log(l.join(''))

        let len = s.length;
        let a = [], n;
        n=0;
    for(let i=0; i<len; i++){
        if(n>0){
            if(s[i]==a[n-1]){
                n--;
            }else{
                a[n] = s[i];
                n++;
            }
        }else{
            a[n] = s[i];
            n++;
        }
    }

    // for(let i=0; i<n; i++)
    //     process.stdout.write(a[i]);
    // process.stdout.write('\n');
    process.stdout.write(a.join('')+'\n');

//     let len = s.length;
//     let a = [], n;
//     n=0;
// for(let i=0; i<len; i++){
//     if(n>0){
//         if(s[i]==a[n-1]){
//             a.pop();
//             n--;
//         }else{
//             a.push(s[i]);
//             n++;
//         }
//     }else{
//         a.push(s[i]);
//         n++;
//     }
// }
// // console.log(a.join(''))
// // for(let i=0; i<n; i++)
// //     process.stdout.write(a[i]);
// process.stdout.write(a.join('')+'\n');

    // let tam = [];
    // let chay;
    // if(len==1)
	// 	{
	// 		process.stdout.write(s+'\n');
	// 		return;
	// 	}
	// 	chay=0;
	// 	for(i=0; i<len; i++)
	// 	{
	// 		if(chay==0)
	// 		{
	// 			tam[chay]=s[i];
	// 			chay++;
	// 		}
	// 		else
	// 		{
	// 			if(s[i]==tam[chay-1])
	// 			{

	// 				chay--;
	// 			}
	// 			else
	// 			{
	// 				tam[chay]=s[i];
	// 				chay++;
	// 			}
	// 		}
	// 	}
	// 	for(let i=0; i<chay; i++)
    //         process.stdout.write(tam[i]);
    //     process.stdout.write('\n');
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

// function solve(s){
//     // let a = [300000];
//     // let n=0;
//     let len = s.length;
//     // for(let i=0; i<len; i++){
//     //     if(n>0){
//     //         if(s[i]==a[n-1]){
//     //             n--;
//     //         }else{
//     //             a[n] = s[i];
//     //             n++;
//     //         }
//     //     }else{
//     //         a[n] = s[i];
//     //         n++;
//     //     }
//     // }
//     // // console.log(n);
//     // for(let i=0; i<n; i++)
//     //     process.stdout.write(a[i]);
//     //     process.stdout.write('\n');

//     let tam = [];
//     let chay;
//     if(len==1)
// 		{
// 			process.stdout.write(s+'\n');
// 			return;
// 		}
// 		chay=0;
// 		for(i=0; i<len; i++)
// 		{
// 			if(chay==0)
// 			{
// 				tam[chay]=s[i];
// 				chay++;
// 			}
// 			else
// 			{
// 				if(s[i]==tam[chay-1])
// 				{

// 					chay--;
// 				}
// 				else
// 				{
// 					tam[chay]=s[i];
// 					chay++;
// 				}
// 			}
// 		}
// 		for(let i=0; i<chay; i++)
//             process.stdout.write(tam[i]);
//         process.stdout.write('\n');
// }

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('readable', (input) => { stdinInput += input; });
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s;
function main() {
    const is = new Scanner();

    while((s = is.nextLine())!==false){
        let len = s.length;
        let a = [], n;
        n=0;
    for(let i=0; i<len; i++){
        if(n>0){
            if(s[i]==a[n-1]){
                n--;
            }else{
                a[n] = s[i];
                n++;
            }
        }else{
            a[n] = s[i];
            n++;
        }
    }
    console.log(n);
    for(let i=0; i<n; i++)
        process.stdout.write(a[i]);
        process.stdout.write('\n');

    // let tam = [];
    // let chay;
    // if(len==1)
	// 	{
	// 		process.stdout.write(s+'\n');
	// 		return;
	// 	}
	// 	chay=0;
	// 	for(i=0; i<len; i++)
	// 	{
	// 		if(chay==0)
	// 		{
	// 			tam[chay]=s[i];
	// 			chay++;
	// 		}
	// 		else
	// 		{
	// 			if(s[i]==tam[chay-1])
	// 			{

	// 				chay--;
	// 			}
	// 			else
	// 			{
	// 				tam[chay]=s[i];
	// 				chay++;
	// 			}
	// 		}
	// 	}
	// 	for(let i=0; i<chay; i++)
    //         process.stdout.write(tam[i]);
    //     process.stdout.write('\n');
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

// function solve(s){
//     // let a = [300000];
//     // let n=0;
//     let len = s.length;
//     // for(let i=0; i<len; i++){
//     //     if(n>0){
//     //         if(s[i]==a[n-1]){
//     //             n--;
//     //         }else{
//     //             a[n] = s[i];
//     //             n++;
//     //         }
//     //     }else{
//     //         a[n] = s[i];
//     //         n++;
//     //     }
//     // }
//     // // console.log(n);
//     // for(let i=0; i<n; i++)
//     //     process.stdout.write(a[i]);
//     //     process.stdout.write('\n');

//     let tam = [];
//     let chay;
//     if(len==1)
// 		{
// 			process.stdout.write(s+'\n');
// 			return;
// 		}
// 		chay=0;
// 		for(i=0; i<len; i++)
// 		{
// 			if(chay==0)
// 			{
// 				tam[chay]=s[i];
// 				chay++;
// 			}
// 			else
// 			{
// 				if(s[i]==tam[chay-1])
// 				{

// 					chay--;
// 				}
// 				else
// 				{
// 					tam[chay]=s[i];
// 					chay++;
// 				}
// 			}
// 		}
// 		for(let i=0; i<chay; i++)
//             process.stdout.write(tam[i]);
//         process.stdout.write('\n');
// }

readline = require('readline')
let stdinInput = '';

function IO_IN_FILE(){
    //file
    var fs = require('fs');
    const inputfile = '_in.txt';
    const outputfile = '_out.txt';
    fs.writeFileSync(outputfile, '');
    var myInterface = readline.createInterface({
        input: fs.createReadStream(inputfile),
    });
    myInterface.on('line', function (line) {
        stdinInput += line+'\n';
    }).on('close', () => {
       main();
        process.exit(0);
    })

    process.stdout.write = function(data1){
        fs.appendFileSync(outputfile, data1, 'utf8');
    }
}

function IO_STD(){
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    process.stdin.on('readable', (input) => { stdinInput += input; });
    process.stdin.on('end', () => { main(); });
}
   /*
   *  Api Scanner
   */
  class Scanner {
    constructor() {
      this.index = -1;
      this.lines = stdinInput.trim().split('\n'); // eslint-disable-line
    }

    nextLine() {
        if(this.index >= this.lines.length-1)
            return false;
        this.index += 1;
        return this.lines[this.index].trim();
    }
    nextArray(fn) {
        let checkarr = this.nextLine();
        if(checkarr===false)
            return false;
        const array = checkarr.split(' ');
        return fn === String ? array : array.map(fn);
    }

    hasNext() {
      return this.index < this.lines.length;
    }
  }

//   IO_IN_FILE();
IO_STD();

let ntest, s;
function main() {
    const is = new Scanner();

    while((s = is.nextLine())!==false){
        console.log(s);
        let len = s.length;
        let a = [], n;
        n=0;
    for(let i=0; i<len; i++){
        if(n>0){
            if(s[i]==a[n-1]){
                n--;
            }else{
                a[n] = s[i];
                n++;
                console.log(a);
            }
        }else{
            a[n] = s[i];
            n++;
        }
    }

    for(let i=0; i<n; i++)
        process.stdout.write(a[i]);
    process.stdout.write('\n');

    // let tam = [];
    // let chay;
    // if(len==1)
	// 	{
	// 		process.stdout.write(s+'\n');
	// 		return;
	// 	}
	// 	chay=0;
	// 	for(i=0; i<len; i++)
	// 	{
	// 		if(chay==0)
	// 		{
	// 			tam[chay]=s[i];
	// 			chay++;
	// 		}
	// 		else
	// 		{
	// 			if(s[i]==tam[chay-1])
	// 			{

	// 				chay--;
	// 			}
	// 			else
	// 			{
	// 				tam[chay]=s[i];
	// 				chay++;
	// 			}
	// 		}
	// 	}
	// 	for(let i=0; i<chay; i++)
    //         process.stdout.write(tam[i]);
    //     process.stdout.write('\n');
    }
}

// var readline = require('readline');

// const myInterface = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
//   });

// // var fs = require('fs');
// // fs.writeFileSync('_out.txt', '');
// // var myInterface = readline.createInterface({
// //     input: fs.createReadStream('_in.txt'),
// // });

// myInterface.on('line', function (line) {
//     solve(line);

// }).on('close', () => {
//     process.exit(0);
// })

// function solve(s){
//     // let a = [300000];
//     // let n=0;
//     let len = s.length;
//     // for(let i=0; i<len; i++){
//     //     if(n>0){
//     //         if(s[i]==a[n-1]){
//     //             n--;
//     //         }else{
//     //             a[n] = s[i];
//     //             n++;
//     //         }
//     //     }else{
//     //         a[n] = s[i];
//     //         n++;
//     //     }
//     // }
//     // // console.log(n);
//     // for(let i=0; i<n; i++)
//     //     process.stdout.write(a[i]);
//     //     process.stdout.write('\n');

//     let tam = [];
//     let chay;
//     if(len==1)
// 		{
// 			process.stdout.write(s+'\n');
// 			return;
// 		}
// 		chay=0;
// 		for(i=0; i<len; i++)
// 		{
// 			if(chay==0)
// 			{
// 				tam[chay]=s[i];
// 				chay++;
// 			}
// 			else
// 			{
// 				if(s[i]==tam[chay-1])
// 				{

// 					chay--;
// 				}
// 				else
// 				{
// 					tam[chay]=s[i];
// 					chay++;
// 				}
// 			}
// 		}
// 		for(let i=0; i<chay; i++)
//             process.stdout.write(tam[i]);
//         process.stdout.write('\n');
// }


Professor GukiZ likes programming contests. He especially likes to rate his students on the contests he prepares. Now, he has decided to prepare a new contest. In total, n students will attend, and before the start, every one of them has some positive integer rating. Students are indexed from 1 to n. Let's denote the rating of i-th student as ai. After the contest ends, every student will end up with some positive integer position. GukiZ expects that his students will take places according to their ratings. He thinks that each student will take place equal to . In particular, if student A has rating strictly lower then student B, A will get the strictly better position than B, and if two students have equal ratings, they will share the same position. GukiZ would like you to reconstruct the results by following his expectations. Help him and determine the position after the end of the contest for each of his students if everything goes as expected.

The first line contains integer n (1 ≤ n ≤ 2000), number of GukiZ's students.  The second line contains n numbers a1, a2, ... an (1 ≤ ai ≤ 2000) where ai is the rating of i-th student (1 ≤ i ≤ n).

In a single line, print the position after the end of the contest for each of n students in the same order as they appear in the input.

NoteIn the first sample, students 2 and 3 are positioned first (there is no other student with higher rating), and student 1 is positioned third since there are two students with higher rating.In the second sample, first student is the only one on the contest.In the third sample, students 2 and 5 share the first position with highest rating, student 4 is next with third position, and students 1 and 3 are the last sharing fourth position.

'use strict';

process.stdin.resume();
process.stdin.setEncoding('utf-8');

let inputString = '';
let currentLine = 0;

process.stdin.on('data', (inputStdin) => {
  inputString += inputStdin;
});

process.stdin.on('end', (_) => {
  inputString = inputString
    .trim()
    .split('\n')
    .map((string) => {
      return string.trim();
    });

  main();
});

function readline() {
  return inputString[currentLine++];
}

function main() {
  const n = Number(readline())
  const a = readline().split(' ').map(Number)

  helper(n, a)
}

function helper(n, a) {
  let clone = [...a]
  clone.sort((a1, a2) => a2 - a1)
  let map = new Map()

  for (let i = 0; i < n; i++) {
    if (!map.has(clone[i])) {
      map.set(clone[i], i + 1)
    }
  }

  let result = ''
  for (let i = 0; i < n; i++) {
    result += map.get(a[i]) + ' '
  }

  console.log(result.substring(0, result.length))
}

'use strict';

process.stdin.resume();
process.stdin.setEncoding('utf-8');

let inputString = '';
let currentLine = 0;

process.stdin.on('data', inputStdin => {
    inputString += inputStdin;
});

process.stdin.on('end', _ => {
    inputString = inputString.trim().split('\n').map(string => {
        return string.trim();
    });

    main();
});

function readLine() {
    return inputString[currentLine++];
}

function printResult(x) {
    process.stdout.write(x);
}

function main() {
    const n = parseInt(readLine(), 10);
    const arr = readLine().split(' ').map((item, i, a) => new List(parseInt(item, 10), i));

    const result = gukiZAndContest(n, arr);
    printResult(result);
}

function List(value, pos) {
    this.value = value;
    this.pos = pos;
}

function compare(a, b) {
    if (a.value < b.value) return 1;
    if (a.value > b.value) return -1;
    return 0;
}

const gukiZAndContest = (n, a) => {
    a.sort(compare);

    const result = new Array(n);
    let ranking = 1;
    result[a[0].pos] = ranking;
    for (let i = 0; i < n - 1; i++) {
        if (a[i].value > a[i + 1].value) ranking = i + 2;
        result[a[i + 1].pos] = ranking;
    }

    return result.join(' ');
};

const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: false
});
let c = 0;

rl.on('line', (d) => {
  if (c === 0) {
    c++;
    return;
  }

  const arr = d.split(' ').map(Number);
  const ans = [];

  for (let i = 0; i < arr.length; i++) {
    let counter = 1;
    for (let j = 0; j < arr.length; j++) {
      if (arr[i] < arr[j]) {
        counter++;
      }
    }
    ans.push(counter);
  }

  console.log(ans.join(' '));
  c++;
});

var n = +readline(), a = readline().split(" "), s = a.concat(), places = [];
s.sort(function(a,b){return b-a});

for(i = 0, p = 1; i < n ; i++){
	places[a.indexOf(s[i])] = p;
	if( (i != n-1) && (s[i] != s[i+1]) ){
		p = i+2;
	}
	delete a[a.indexOf(s[i])];
}
write(places.join(" "));

function main(n,arr){

      var ansstr = "";

      for(var i = 0 ; i < n ; i++){
        var ans = 1;
        for(var j = 0 ; j < n ; j++){
          if(arr[i]<arr[j])ans++
        }
        ansstr = ansstr + ans + " ";
      }

    print(ansstr);
}

var n = readline();

var arr = readline().split(" ");
for(var i = 0 ; i < arr.length ; i++)arr[i] = parseInt(arr[i]);

main(parseInt(n),arr);

var N = readline();
var inArr = readline().split(' ').map(Number);
var outArr = [];
for (var i = 0; i<N; i++) {
var poss = 1;
for (var k = 0; k<N; k++) {
if (inArr[i]<inArr[k]) {
poss += 1;
}
}
outArr[i] = poss;
}
print (outArr.join(" "));

function ProblemSolver() {
    this.HAS_TEST_CASES = false;
    this.INPUT_FILE_NAME = "test.in";
    this.OUTPUT_FILE_NAME = "out.txt";
    this.DO_OUTPUT_TO_FILE = false;
    this.CLEAR_ARRAY_PER_CASE = false;

    this.solveCase = function() {
        var res , i , j , fl , cn , temp ;
        res = 0 ;
        this.brr = [] ;
        for( i = 0 ; i < this.n ; i++ ) {
        	cn = 1 ;
        	for( j = 0 ; j < this.n ; j++ ) {
        		if( this.arr[ j ] > this.arr[ i ] ) {
        			cn++ ;
        		}
        	}
        	this.brr.push( cn ) ;
        }
        res = '' ;
        for( i = 0 ; i < this.n ; i++ ) {
        	if( i > 0 ) {
        		res += ' ' ;
        	}
        	res += this.brr[ i ] ;
        }
        print( res ) ;
    };

    this.init = function() {
        this.lim1 = 100010;
        this.lim2 = 110;
        this.cc = 1;
        this.ind = 1;
        this.n = 0;
        this.cn = 0;
        this.declareAndFillArrays();
    };

    this.getInput = function( irObj ) {
        var hasMoreInput , i;
        hasMoreInput = true;
        try {
            this.n = irObj.nextInt();
            this.arr = [] ;
            for( i = 0 ; i < this.n ; i++ ) {
                this.arr.push( irObj.nextInt() ) ;
            }
        }
        catch( ex ) {
            hasMoreInput = false;
        }
        return hasMoreInput;
    };

    this.clearArraysPerCase = function() {
        var i;
        this.arr = new Array();
        this.adjList = new Array();
        for( i = 0 ; i < this.lim1 ; i++ ) {
            this.arr.push( 0 );
            this.adjList.push( new Array() );
        }
    };

    this.clearPerCase = function() {
        this.cn = 0;
        this.cc++;
        if( this.CLEAR_ARRAY_PER_CASE == true ) {
            this.clearArraysPerCase() ;
        }
    };

    this.declareAndFillArrays = function() {
        var i , j;
        this.srr = new Array();
        this.vis = new Array();
        this.arr = new Array();
        this.brr = new Array();
        this.memo = new Array();
        this.done = new Array();
        this.adjList = new Array();
        for( i = 0 ; i < this.lim1 ; i++ ) {
            this.srr.push( "" );
            this.vis.push( 0 );
            this.arr.push( 0 );
            this.brr.push( 0 );
            this.adjList.push( new Array() );
        }
        for( i = 0 ; i < this.lim2 ; i++ ) {
            this.memo.push( new Array() );
            this.done.push( new Array() );
            for( j = 0 ; j < this.lim2 ; j++ ) {
                this.memo[ i ].push( -1 );
                this.done[ i ].push( 0 );
            }
        }
    };

    this.init();
}

function InputReader() {
    var self = this ;
    this.allLines = new Array();
    this.currrentLineNumber = 0;
    this.currrentCharacterIndex = 0;
    this.callBackFunction = null ;
    this.parentContext = null ;

    this.readAllLines = function() {
        var singleLine;
        while( true ) {
            try {
                singleLine = readline();
                if( singleLine == null ) {
                    break;
                }
            }
            catch( ex ) {
                break;
            }
            this.allLines.push( singleLine );
        }
    };

    this.readAllLinesFromRhino = function() {
        var brObj , line ;
        importPackage( java.io ) ;
        importPackage( java.lang ) ;
        brObj = new BufferedReader( new InputStreamReader( System[ 'in' ] ) ) ;
        this.allLines = [] ;
        while( true ) {
            line = brObj.readLine() ;
            if( line == null ) {
                break;
            }
            this.allLines.push( line ) ;
        }
    };

    this.readSingleLinesFromNodeJsJudgeServer = function( chunk ) {
        self.chunkData += chunk ;
    };

    this.readEndFromNodeJsJudgeServer = function() {
        self.parseRawData( self.chunkData ) ;
        self.parentContext.runCases() ;
    };

    this.readAllLinesFromNodeJsJudgeServer = function( parentContext ) {
        this.parentContext = parentContext ;
        process.stdin.resume() ;
        process.stdin.setEncoding( 'utf8' ) ;
        this.chunkData = '' ;
        process.stdin.on( 'data' , this.readSingleLinesFromNodeJsJudgeServer ) ;
        process.stdin.on( 'end' , this.readEndFromNodeJsJudgeServer ) ;
    };

    this.parseRawData = function( data ) {
        var len , i , currentString;
        len = data.length;
        currentString = "";
        this.allLines = [] ;
        for( i = 0 ; i < len ; i++ ) {
            if( data[ i ] == '\r' ) {
            }
            else if( data[ i ] == '\n' ) {
                this.allLines.push( currentString );
                currentString = "";
            }
            else {
                currentString += data[ i ];
            }
        }
        if( currentString != "" ) {
            this.allLines.push( currentString );
        }
    };

    this.readAllLinesFromFile = function( inputFileName ) {
        var currentDirectory , fsObj , inputFilePath , rawData;
        fsObj = require( 'fs' );
        currentDirectory = __dirname;
        inputFilePath = currentDirectory + "\\" + inputFileName;
        rawData = fsObj.readFileSync( inputFilePath , "utf8" );
        this.parseRawData( rawData );
    };

    this.next = function( flag ) {
        var len , i , startIdx , res , endIdx;
        if( flag == 0 ) {
            if( this.currrentCharacterIndex != 0 ) {
                this.currrentLineNumber++;
                this.currrentCharacterIndex = 0;
            }
            res = "";
            len = this.allLines[ this.currrentLineNumber ].length;
            if( typeof( len ) == 'function' ) {
                len = this.allLines[ this.currrentLineNumber ].length() ;
            }
            for( i = this.currrentCharacterIndex ; i < len ; i++ ) {
                res += '' + this.allLines[ this.currrentLineNumber ].charAt( i ) ;
            }
            this.currrentLineNumber++;
            this.currrentCharacterIndex = 0;
            return res;
        }
        while( true ) {
            if( this.currrentLineNumber >= this.allLines.length ) {
                throw new Error( "No more tokens available!" );
            }
            startIdx = -1;
            len = this.allLines[ this.currrentLineNumber ].length;
            if( typeof( len ) == 'function' ) {
                len = this.allLines[ this.currrentLineNumber ].length() ;
            }
            for( i = this.currrentCharacterIndex ; i < len ; i++ ) {
                if( this.allLines[ this.currrentLineNumber ].charCodeAt( i ) != ' '.charCodeAt( 0 ) ) {
                    startIdx = i;
                    break;
                }
            }
            if( startIdx == -1 ) {
                this.currrentLineNumber++;
                this.currrentCharacterIndex = 0;
                continue;
            }
            res = "";
            endIdx = len - 1 ;
            for( i = startIdx ; i < len ; i++ ) {
                if( this.allLines[ this.currrentLineNumber ].charCodeAt( i ) == ' '.charCodeAt( 0 ) ) {
                    endIdx = i;
                    break;
                }
                if( this.allLines[ this.currrentLineNumber ].charCodeAt( i ) >= 48 && this.allLines[ this.currrentLineNumber ].charCodeAt( i ) <= 57 ) {
                    res += '' + ( this.allLines[ this.currrentLineNumber ].charCodeAt( i ) - 48 ) ;
                }
                else {
                    res += '' + this.allLines[ this.currrentLineNumber ].charAt( i );
                }
            }
            this.currrentCharacterIndex = endIdx;
            if( endIdx == len - 1 ) {
                this.currrentLineNumber++;
                this.currrentCharacterIndex = 0;
            }
            return res;
        }
    };

    this.nextInt = function() {
        return parseInt( this.next( 1 ) );
    };

    this.nextDouble = function() {
        return parseFloat( this.next( 1 ) );
    };

    this.nextString = function() {
        return this.next( 1 );
    };

    this.nextLine = function() {
        return this.next( 0 );
    };
}

function FileOutputHandler() {
    this.resultantStringArray = new Array();

    this.addNewLine = function( newString ) {
        this.resultantStringArray.push( newString );
    };

    this.clearPercase = function() {
        this.resultantStringArray = new Array();
    };

    this.flushOutOutputToFile = function( outputFileName ) {
        var i , sz , res , currentDirectory , fsObj , outputFilePath;
        res = "";
        sz = this.resultantStringArray.length;
        for( i = 0 ; i < sz ; i++ ) {
            if( i != 0 ) {
                res += "\n";
            }
            res += this.resultantStringArray[ i ];
        }
        fsObj = require( 'fs' );
        currentDirectory = __dirname;
        outputFilePath = currentDirectory + "\\" + outputFileName;
        fsObj.writeFileSync( outputFilePath , res );
        this.clearPercase();
    };
}

function CodeExecutioner() {
    this.irObj = new InputReader();
    this.psObj = new ProblemSolver();
    this.fohObj = new FileOutputHandler();

    this.runCases = function() {
        if( this.psObj.HAS_TEST_CASES == true ) {
            testCases = this.irObj.nextInt();
            for( i = 0 ; i < testCases ; i++ ) {
                this.psObj.clearPerCase();
                this.psObj.getInput( this.irObj );
                this.psObj.solveCase();
            }
        }
        else {
            while( true ) {
                this.psObj.clearPerCase();
                hasMoreTestCases = this.psObj.getInput( this.irObj );
                if( hasMoreTestCases == false ) {
                    break;
                }
                this.psObj.solveCase();
            }
        }
        if( this.psObj.DO_OUTPUT_TO_FILE == true ) {
            this.fohObj.flushOutOutputToFile( this.psObj.OUTPUT_FILE_NAME );
        }
    };

    this.detectEnvironmentType = function() {
        var environmentType = null ;
        try {
            if( importPackage != null ) {
                environmentType = 'rhino' ;
            }
        }
        catch( ex1 ) {
            try {
                //for nodejs local server check
                if( __dirname != null && readline != null && typeof( readline ) != 'function' ) {
                    environmentType = 'local-node-js' ;
                }
            }
            catch( ex2 ) {
                try {
                    if( readline == null || typeof( readline ) != 'function' ) {
                        environmentType = 'server-node-js' ;
                    }
                    else {
                        try {
                            if( Map != null ) {
                                environmentType = 'spider-monkey' ;
                            }
                            else {
                                environmentType = 'javascript-v8' ;
                            }
                        }
                        catch( ex3 ) {
                            environmentType = 'javascript-v8' ;
                        }
                    }
                }
                catch( ex3 ) {
                    environmentType = 'server-node-js' ;
                }
            }
        }
        return environmentType ;
    };

    this.configureStreamsAndReadInput = function() {
        var testCases , i , hasMoreTestCases , isLocal , localContext , isNodeJsJudgeServer , environmentType ;
        isNodeJsJudgeServer = false ;
        environmentType = this.detectEnvironmentType() ;
        if( environmentType == 'local-node-js' ) {
            try {
                if( print == null || typeof( print ) != 'function' ) {
                    print = console.log;
                }
            }
            catch( ex ) {
                print = console.log;
            }
            if( this.psObj.DO_OUTPUT_TO_FILE == true ) {
                localContext = this.fohObj;
                print = function() {
                    localContext.addNewLine.apply( localContext , arguments );
                }
            }
            this.irObj.readAllLinesFromFile( this.psObj.INPUT_FILE_NAME );
            this.runCases() ;
        }
        else if( environmentType == 'server-node-js' ) {
            try {
                if( print == null || typeof( print ) != 'function' ) {
                    print = console.log;
                }
            }
            catch( ex ) {
                print = console.log;
            }
            this.irObj.readAllLinesFromNodeJsJudgeServer( this ) ;
        }
        else if( environmentType == 'javascript-v8' ) {
            this.irObj.readAllLines();
            this.runCases() ;
        }
        else if( environmentType == 'rhino' ) {
            this.irObj.readAllLinesFromRhino();
            this.runCases() ;
        }
        else if( environmentType == 'spider-monkey' ) {
            this.irObj.readAllLines();
            this.runCases() ;
        }
    };

    this.configureStreamsAndReadInput();
}

new CodeExecutioner();

function toi(x){return parseInt(x);}
(function(){
    var n=+readline();
    var a=readline().split(" ").map(toi);
    var res=a.map(function(x){ return 1+a.filter(function(y){return y>x;}).length});
    print(res.join(" "));
})();

function main(){
	var n = nextInt();
	var a = new Array(n);
	var ans = new Array(n);
	var  i;
	for(i =0; i<n ;i++)
		a[i] = {F:nextInt(),S:i};
	a.sort(function(a,b){
		return -(a.F - b.F);
	});
	var pos = 0;
	var cur = 1;
	i = 0;
	var common = 0;
	while(pos<n){
		common = cur;
		i = pos;
		while(i < n && a[i].F == a[pos].F){
			cur++;
			ans[a[i].S]=common;
			++i;
		}
		pos = i;
	}
	print(ans.join(" "));

}
var tokens = [];
var tokensPos = 0;
function next(){
	while(tokens.length<=tokensPos){
		tokens = readline().split(/[\s]+/);
		tokensPos = 0;
	}
	return tokens[tokensPos++];
}
function nextInt(){
	return parseInt(next());
}
main();

var n = parseInt(readline(), 10);
var a = readline().split(' ').map(Number);

var b = [];

for (var i = 0; i < a.length; i++) {
	b.push([a[i], i + 1]);
}

b.sort(function(x, y) {
	return (x[0] - y[0]);
});

b.reverse();

var ans = [];

for (var i = 0; i < b.length; i++) {
	if (i == 0) {
		ans[b[i][1]] = i + 1;
	} else {
		if (b[i][0] === b[i-1][0]) {
			ans[b[i][1]] = ans[b[i-1][1]];
		} else {
			ans[b[i][1]] = i + 1;
		}
	}
}

print(ans.join(' '));

n = readline();
str = readline().split(' ').map(Number);

var arr = [];

for (var i = 0; i < n; i++) {
	var count = 0;

	for (var j = 0; j < n; j++) {
		if (str[j] > str[i]) {
			count++;
		};
	};

	arr.push(count + 1);
};

print(arr.join(' '));