program tiling
  implicit none
  integer :: n, m, a, b, x(1000,1000) = 0, i, j
  character(1) :: s(0:4) = (/".","<",">","^","v"/)
  read(*,*) n, m, a, b
  if (mod(n,2) == 0 .and. mod(m,2) == 0) then
    call fill_sq(x,n,m,a,b)
  else if (mod(n,2) == 0) then
    call fill_rc(x(:,m),n,b,3,4)
    call fill_sq(x,n,m-1,a,b)
  else if (mod(m,2) == 0) then
    call fill_rc(x(n,:),m,a,1,2)
    call fill_sq(x,n-1,m,a,b)
  else if (2*(a+b) /= n*m-1 .or. mod(b,2) == mod((n-1)*m/2,2)) then
    call fill_rc(x(:,m),n-1,b,3,4)
    call fill_rc(x(n,:),m-1,a,1,2)
    call fill_sq(x,n-1,m-1,a,b)
  else
    x(n,m-1:m) = (/1,2/)
    x(n-2,m-2:m-1) = (/1,2/)
    x(n-2:n-1,m) = (/3,4/)
    x(n-1:n,m-2) = (/3,4/)
    a = a-2
    b = b-2
    call fill_rc(x(:,m-2),n-3,b,3,4)
    call fill_rc(x(:,m-1),n-3,b,3,4)
    call fill_rc(x(:,m),n-3,b,3,4)
    call fill_rc(x(n-2,:),m-3,a,1,2)
    call fill_rc(x(n-1,:),m-3,a,1,2)
    call fill_rc(x(n,:),m-3,a,1,2)
    call fill_sq(x,n-3,m-3,a,b)
  end if
  if (a > 0 .or. b > 0) then
    write(*,'(a)') "NO"
    stop
  end if
  write(*,'(a)') "YES"
  do i = 1, n
    do j = 1, m
      write(*,'(a)',advance='no') s(x(i,j))
    end do
    write(*,*)
  end do
contains
  subroutine fill_rc(x,n,a,p,q)
    integer, intent(out) :: x(:)
    integer, intent(in) :: n, p, q
    integer, intent(inout) :: a
    integer :: i
    do i = 1, n, 2
      if (a > 0) then
        x(i:i+1) = (/p,q/)
        a = a-1
        cycle
      end if
      exit
    end do
  end
  subroutine fill_sq(x,n,m,a,b)
    integer, intent(out) :: x(:,:)
    integer, intent(in) :: n, m
    integer, intent(inout) :: a, b
    integer :: i, j
    do i = 1, n, 2
      do j = 1, m, 2
        if (a > 0) then
          x(i,j:j+1) = (/1,2/)
          a = a-1
          if (a == 0) cycle
          x(i+1,j:j+1) = (/1,2/)
          a = a-1
          cycle
        end if
        if (b > 0) then
          x(i:i+1,j) = (/3,4/)
          b = b-1
          if (b == 0) cycle
          x(i:i+1,j+1) = (/3,4/)
          b = b-1
          cycle
        end if
        exit
      end do
    end do
  end
end program tiling