program main implicit none integer::N,K,X,i,tmp character::q(2) integer,allocatable::A(:),B(:),C(:),cupi(:),cupf(:) logical::is_first=.true. read *,N,K,X allocate(A(K),B(K),C(N),cupi(N),cupf(N)) do i=1,K if(i.eq.X) then read *,q else read *, A(i),B(i) end if end do cupi = (/(i,i=1,N)/) read *,cupf ! swap forward do i=1,X-1 tmp = cupi(A(i)) cupi(A(i)) = cupi(B(i)) cupi(B(i)) = tmp end do ! swap backward do i=K,X+1,-1 tmp = cupf(A(i)) cupf(A(i)) = cupf(B(i)) cupf(B(i)) = tmp end do do i=1,N if(cupi(i).ne.cupf(i))then if(is_first.eqv..true.) then is_first = .false. write (*,'(i0," ")',advance='no') i else write (*,'(i0)',advance='yes') i return end if end if end do end program main