integer::N,M,K,i,j,l integer,allocatable::road(:,:) integer,allocatable::keiro(:) integer,allocatable::han1(:),han2(:) integer::ryoukin, num read *,N,M,K allocate(road(3,M)) allocate(keiro(K)) allocate(han1(N)) allocate(han2(N)) read *, road read *, keiro han1 = 1 han2 = 0 do i=1, M ryoukin = keiro(i) do j=1, N if(han1(j).eq.1) then do l=1,M if(road(3,l).eq.ryoukin) then if(road(1,l).eq.j) then han2(road(2,l)) = 1 else if(road(2,l).eq.j) then han2(road(1,l)) = 1 end if end if end do end if end do han1 = han2 han2 = 0 end do num = SUM(han1) print '(i0)', num do i=1,N if(han1(i).eq.1) then num = num - 1 if(num.ne.0) then write(6,'(i0,a)',advance='no') i, " " else write(6,'(i0)') i end if end if end do end program