#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define rd_skip() while(*rp++>=48) #define rd_skip_line() while(*rp++!=10) #define rd(v) long v=0;{long _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;} #define wt(v) {ulong _z=v;do*--wp=_z%10+48;while(_z/=10);} typedef unsigned long ulong; char s[1<<25]; long f1(){ long n=read(0,s,200001)-1; long r=0,c='0'; while(--n){ if(s[n]!=c){ ++r; c=s[n-1]; } } return r+1; } void f2(long r){ char wbuf[64],*wp=wbuf+sizeof wbuf; wt(r); write(1,wp,wbuf+sizeof wbuf-wp); _exit(0); } int main(){ f2(f1()); return 0; }