#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char * removeDuplicates(char * S){
int len = strlen (S);
char* arr = (char *)malloc(sizeof(char) * (len + 1)); //用数组arr来模拟栈
int top = -1; // 栈为空
for (int i = 0; i < len; i ++ ) { // 栈不为空 且 栈顶元素和S中的第 i 个元素相同
if (top >= 0 && S[i] == arr[top]) {
top --;
}
else { // 否则放入栈中,成为新的栈顶元素
arr[++top] = S[i];
}
}
arr[++top] = '\0'; // 因为要返回字符串,所以加上结束符
return arr;
}
int main(){
char a[300000] = {0};
scanf("%s",a);
char *p = removeDuplicates(a);
if(strlen(p)==0){
p = "0";
printf("%s\n",p);
}else{
printf("%s\n",p);
}
return 0;
}