program rotation integer::R,K,H,W,n,m,l1,l2 character(10),allocatable,dimension(:)::allC character(1),allocatable,dimension(:,:)::c read *,R,K read *,H,W allocate(C(H,W),allC(H)) do n=1,H read *,allC(n) do m=1,W c(n,m)=allC(n)(m:m) end do end do if(R==0) then do n=1,H do l1=1,K do m=1,W do l2=1,K write(*,'(A)',advance='no'),c(n,m) end do end do print *, end do end do else if(R==90) then do m=1,W do l1=1,K do n=H,1,-1 do l2=1,K write(*,'(A)',advance='no')c(n,m) end do end do print *, end do end do else if(R==180) then do n=H,1,-1 do l1=1,K do m=W,1,-1 do l2=1,K write(*,'(A)',advance='no'),c(n,m) end do end do print *, end do end do else if(R==270) then do m=W,1,-1 do l1=1,K do n=1,H do l2=1,K write(*,'(A)',advance='no')c(n,m) end do end do print *, end do end do end if end program rotation