OIG XVII - kro

// https://szkopul.edu.pl/problemset/problem/oVHtxvef7lm-fuSKDBo79BkB/site/?key=statement
// XVII OIJ (1 etap)

#include <iostream>
#include <string>

int main() {
    std::ios_base::sync_with_stdio(0);
    std::cin.tie(0);
    std::cout.tie(0);

    int kx, ky, dx, dy;

    char in;

    std::cin >> in;
    kx = in - 'a' + 1;

    std::cin >> in;
    ky = in - '0';

    std::cin >> in;
    dx = in - 'a' + 1;

    std::cin >> in;
    dy = in - '0';

    int steps = 0;

    std::string r_str = "";

    while (kx != dx || ky != dy) {
        if (kx > dx && ky == dy) {
            r_str += "W ";
            kx--;
        } else if (kx < dx && ky == dy) {
            r_str += "E ";
            kx++;
        } else if (kx == dx && ky > dy) {
            r_str += "S ";
            ky--;
        } else if (kx == dx && ky < dy) {
            r_str += "N ";
            ky++;
        } else if (kx > dx && ky > dy) {
            r_str += "SW ";
            ky--;
            kx--;
        } else if (kx > dx && ky < dy) {
            r_str += "NW ";
            kx--;
            ky++;
        } else if (kx < dx && ky > dy) {
            r_str += "SE ";
            kx++;
            ky--;
        } else if (kx < dx && ky < dy) {
            r_str += "NE ";
            kx++;
            ky++;
        } else {
            break;
        }

        steps++;
    }

    std::cout << steps << "\n";
    std::cout << r_str;

    return 0;
}