; alchemical reduction
(define (chem str)
(let loop ((cs (string->list str)) (zs (list)))
(cond ((null? cs) (reverse zs))
((null? zs) (loop (cdr cs) (cons (car cs) zs)))
((and (char-ci=? (car cs) (car zs))
(not (char=? (car cs) (car zs))))
(loop (cdr cs) (cdr zs)))
(else (loop (cdr cs) (cons (car cs) zs))))))
(do ((str (read) (read))) ((eof-object? str))
(display (length (chem str))) (newline))
OyBhbGNoZW1pY2FsIHJlZHVjdGlvbgoKKGRlZmluZSAoY2hlbSBzdHIpCiAgKGxldCBsb29wICgoY3MgKHN0cmluZy0+bGlzdCBzdHIpKSAoenMgKGxpc3QpKSkKICAgIChjb25kICgobnVsbD8gY3MpIChyZXZlcnNlIHpzKSkKICAgICAgICAgICgobnVsbD8genMpIChsb29wIChjZHIgY3MpIChjb25zIChjYXIgY3MpIHpzKSkpCiAgICAgICAgICAoKGFuZCAoY2hhci1jaT0/IChjYXIgY3MpIChjYXIgenMpKQogICAgICAgICAgICAgICAgKG5vdCAoY2hhcj0/IChjYXIgY3MpIChjYXIgenMpKSkpCiAgICAgICAgICAgIChsb29wIChjZHIgY3MpIChjZHIgenMpKSkKICAgICAgICAgIChlbHNlIChsb29wIChjZHIgY3MpIChjb25zIChjYXIgY3MpIHpzKSkpKSkpCgooZG8gKChzdHIgKHJlYWQpIChyZWFkKSkpICgoZW9mLW9iamVjdD8gc3RyKSkKICAoZGlzcGxheSAobGVuZ3RoIChjaGVtIHN0cikpKSAobmV3bGluZSkp