#include <stdio.h> #include<string.h> struct Stack { char str[300000]; int top; }; typedef struct Stack* Pstack; Pstack inistack(void) { Pstack s = (struct Stack *)malloc(sizeof(struct Stack)); s->top = -1; return s; } void push(Pstack s, char x) { s->str[s->top + 1] = x; s->top++; } char pop(Pstack s) { char ans; ans = s->str[s->top]; s->top--; return ans; } int main(void) { int i, j, m; Pstack S; char str1[300000]; char out; scanf("%s",str1); S = inistack(); push(S,str1[0]); m = 1; for(i = m; i < strlen(str1);i++) { if(S->top == -1) push(S,str1[i]); else { if(str1[i] == S->str[S->top]) { push(S,str1[i]); out = pop(S); out = pop(S); m = i+1; } else { push(S,str1[i]); } } } if(S->top == -1) printf("%d",0); for(j = 0; j <= S->top;j++) { printf("%c",S->str[j]); } return 0; }