#include <cstdio>
using namespace std;
char mp[1010][1010];
int main(){
    int n,m,a,b;
    while(~scanf("%d%d%d%d",&n,&m,&a,&b)){
        int c = a, d = b;
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                mp[i][j] = '.';
            }
        }
        if((m&1)&&(n&1)){
            for(int j=0;j<m-1;j+=2){
                if(a==0)break;
                mp[n-1][j] = '<';
                mp[n-1][j+1] = '>';
                a--;
            }
            for(int i=0;i<n-1;i+=2){
                if(b==0)break;
                mp[i][m-1] = '^';
                mp[i+1][m-1] = 'v';
                b--;
            }
            for(int i=0;i<n-1;i+=2){
                for(int j=0;j<m-1;j+=2){
                    if(a){
                        if(a>=2){
                            mp[i][j] = '<';
                            mp[i+1][j] = '<';
                            mp[i][j+1] = '>';
                            mp[i+1][j+1] = '>';
                            a -= 2;
                        }
                        else{
                            mp[i][j] = '<';
                            mp[i][j+1] = '>';
                            a -= 1;
                        }
                    }
                    else if(b){
                        if(b>=2){
                            mp[i][j] = '^';
                            mp[i+1][j] = 'v';
                            mp[i][j+1] = '^';
                            mp[i+1][j+1] = 'v';
                            b -= 2;
                        }
                        else{
                            mp[i][j] = '^';
                            mp[i+1][j] = 'v';
                            b -= 1;
                        }
                    }
                    else break;
                }
            }
            if(a!=0||b!=0){
                a = c, b = d;
                for(int i=0;i<n;i++){
                    for(int j=0;j<m;j++){
                        mp[i][j] = '.';
                    }
                }
                for(int j=0;j<m-1-2;j+=2){
                    if(a==0)break;
                    mp[n-1][j] = '<';
                    mp[n-1][j+1] = '>';
                    a--;
                }
                for(int i=0;i<n-1-2;i+=2){
                    if(b==0)break;
                    mp[i][m-1] = '^';
                    mp[i+1][m-1] = 'v';
                    b--;
                }
                for(int i=0;i<n-1;i+=2){
                    for(int j=0;j<m-1;j+=2){
                        if(i==n-3&&j==m-3)break;
                        if(a-2>0){
                            if(a-2>=2){
                                mp[i][j] = '<';
                                mp[i+1][j] = '<';
                                mp[i][j+1] = '>';
                                mp[i+1][j+1] = '>';
                                a -= 2;
                            }
                            else{
                                mp[i][j] = '<';
                                mp[i][j+1] = '>';
                                a -= 1;
                            }
                        }
                        else if(b-2>0){
                            if(b-2>=2){
                                mp[i][j] = '^';
                                mp[i+1][j] = 'v';
                                mp[i][j+1] = '^';
                                mp[i+1][j+1] = 'v';
                                b -= 2;
                            }
                            else{
                                mp[i][j] = '^';
                                mp[i+1][j] = 'v';
                                b -= 1;
                            }
                        }
                        else break;
                    }
                }
                if(a==2&&b==2){
                    mp[n-1][m-1] = '>';
                    mp[n-1][m-2] = '<';
                    mp[n-1][m-3] = 'v';
                    mp[n-2][m-1] = 'v';
                    mp[n-2][m-2] = '.';
                    mp[n-2][m-3] = '^';
                    mp[n-3][m-1] = '^';
                    mp[n-3][m-2] = '>';
                    mp[n-3][m-3] = '<';
                    a = b = 0;
                }
            }
        }
        else if(m&1){
            for(int i=0;i<n;i+=2){
                if(b==0)break;
                mp[i][m-1] = '^';
                mp[i+1][m-1] = 'v';
                b--;
            }
            for(int i=0;i<n;i+=2){
                for(int j=0;j<m-1;j+=2){
                    if(a){
                        if(a>=2){
                            mp[i][j] = '<';
                            mp[i+1][j] = '<';
                            mp[i][j+1] = '>';
                            mp[i+1][j+1] = '>';
                            a -= 2;
                        }
                        else{
                            mp[i][j] = '<';
                            mp[i][j+1] = '>';
                            a -= 1;
                        }
                    }
                    else if(b){
                        if(b>=2){
                            mp[i][j] = '^';
                            mp[i+1][j] = 'v';
                            mp[i][j+1] = '^';
                            mp[i+1][j+1] = 'v';
                            b -= 2;
                        }
                        else{
                            mp[i][j] = '^';
                            mp[i+1][j] = 'v';
                            b -= 1;
                        }
                    }
                    else break;
                }
            }
        }
        else if(n&1){
            for(int j=0;j<m;j+=2){
                if(a==0)break;
                mp[n-1][j] = '<';
                mp[n-1][j+1] = '>';
                a--;
            }
            for(int i=0;i<n-1;i+=2){
                for(int j=0;j<m;j+=2){
                    if(a){
                        if(a>=2){
                            mp[i][j] = '<';
                            mp[i+1][j] = '<';
                            mp[i][j+1] = '>';
                            mp[i+1][j+1] = '>';
                            a -= 2;
                        }
                        else{
                            mp[i][j] = '<';
                            mp[i][j+1] = '>';
                            a -= 1;
                        }
                    }
                    else if(b){
                        if(b>=2){
                            mp[i][j] = '^';
                            mp[i+1][j] = 'v';
                            mp[i][j+1] = '^';
                            mp[i+1][j+1] = 'v';
                            b -= 2;
                        }
                        else{
                            mp[i][j] = '^';
                            mp[i+1][j] = 'v';
                            b -= 1;
                        }
                    }
                    else break;
                }
            }
        }
        else{
            for(int i=0;i<n;i+=2){
                for(int j=0;j<m;j+=2){
                    if(a){
                        if(a>=2){
                            mp[i][j] = '<';
                            mp[i+1][j] = '<';
                            mp[i][j+1] = '>';
                            mp[i+1][j+1] = '>';
                            a -= 2;
                        }
                        else{
                            mp[i][j] = '<';
                            mp[i][j+1] = '>';
                            a -= 1;
                        }
                    }
                    else if(b){
                        if(b>=2){
                            mp[i][j] = '^';
                            mp[i+1][j] = 'v';
                            mp[i][j+1] = '^';
                            mp[i+1][j+1] = 'v';
                            b -= 2;
                        }
                        else{
                            mp[i][j] = '^';
                            mp[i+1][j] = 'v';
                            b -= 1;
                        }
                    }
                    else break;
                }
            }
        }
        if(a==0&&b==0){
            printf("YES\n");
            for(int i=0;i<n;i++){
                for(int j=0;j<m;j++){
                    printf("%c",mp[i][j]);
                }
                printf("\n");
            }
        }
        else{
            printf("NO\n");
        }
    }
}


Measured memory_bytes: 2176