%macro test(n=,m=);
%let k=%eval(&n+1);
data test1;
merge test %do i=2 %to &k; test(keep=tcode rename=(tcode=tcode&i) firstobs=&i) %end;;
run;
data test1(keep=fcode date tcode yn _yn);
set test1;
retain _cnt _yn;
if sum(tcode=tcode2>. %do j=3 %to &k; ,tcode=tcode&j>. %end;)>=&m and not missing(tcode&k) then do;
_yn=1;
_cnt=1;
end;
else if _cnt>&n then do;
_cnt=1;
_yn=0;
end;
else _cnt+1;
run;
%mend;
%test(n=3, m=2);