#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;
}