data wanted;
set a;
if x ne . and lag(x)=. then num1=0;
num1+1;
if lag(x) ne . and x=. then num2=1;
if x=. and lag(x)=. then num2+1;
if (x ne . and lag(x)=.) or (x ne . and lag(x) ne .) then num=num1;
else num=num2;
keep x num;
run;
data wanted;
set a;
if x ne . and lag(x)=. then num1=0;
num1+1;
if lag(x) ne . and x=. then num2=1;
if x=. and lag(x)=. then num2+1;
if (x ne . and lag(x)=.) or (x ne . and lag(x) ne .) then num=num1;
else num=num2;
keep x num;
run;