#include <iostream>
#include <list>

struct
{
} undefined;

auto turnRight (char d) -> char
{
    switch (d)
    {
    case 'R' :
        return 'D';
    case 'D' :
        return 'L';
    case 'L' :
        return 'U';
    case 'U' :
        return 'R';
    default :
        return d;
    }
}

auto move (char (& a) [5] [4] , char (& b) [4] [5] , int & x , int & y , char & right) -> char
{
    right = [&] () -> char
    {
        switch (right)
        {
        case 'R' :
            if (y > 0 && b [y - 1] [x] == '1')
            {
                return 'U';
            }
            if (x < 4 && a [y] [x] == '1')
            {
                return 'R';
            }
            if (y < 4 && b [y] [x] == '1')
            {
                return 'D';
            }
            if (x > 0 && a [y] [x - 1] == '1')
            {
                return 'L';
            }
            break;
        case 'D' :
            if (x < 4 && a [y] [x] == '1')
            {
                return 'R';
            }
            if (y < 4 && b [y] [x] == '1')
            {
                return 'D';
            }
            if (x > 0 && a [y] [x - 1] == '1')
            {
                return 'L';
            }
            if (y > 0 && b [y - 1] [x] == '1')
            {
                return 'U';
            }
            break;
        case 'L' :
            if (y < 4 && b [y] [x] == '1')
            {
                return 'D';
            }
            if (x > 0 && a [y] [x - 1] == '1')
            {
                return 'L';
            }
            if (y > 0 && b [y - 1] [x] == '1')
            {
                return 'U';
            }
            if (x < 4 && a [y] [x] == '1')
            {
                return 'R';
            }
            break;
        case 'U' :
            if (x > 0 && a [y] [x - 1] == '1')
            {
                return 'L';
            }
            if (y > 0 && b [y - 1] [x] == '1')
            {
                return 'U';
            }
            if (x < 4 && a [y] [x] == '1')
            {
                return 'R';
            }
            if (y < 4 && b [y] [x] == '1')
            {
                return 'D';
            }
            break;
        }
        throw undefined;
    } ();
    switch (right)
    {
        case 'R' :
            ++ x;
            break;
        case 'D' :
            ++ y;
            break;
        case 'L' :
            -- x;
            break;
        case 'U' :
            -- y;
            break;
    }
    return right;
}

auto main () -> int
{
    char a [5] [4];
    char b [4] [5];
    for (auto && elem : a [0])
    {
        std::cin >> elem;
    }
    for (auto && elem : b [0])
    {
        std::cin >> elem;
    }
    for (auto && elem : a [1])
    {
        std::cin >> elem;
    }
    for (auto && elem : b [1])
    {
        std::cin >> elem;
    }
    for (auto && elem : a [2])
    {
        std::cin >> elem;
    }
    for (auto && elem : b [2])
    {
        std::cin >> elem;
    }
    for (auto && elem : a [3])
    {
        std::cin >> elem;
    }
    for (auto && elem : b [3])
    {
        std::cin >> elem;
    }
    for (auto && elem : a [4])
    {
        std::cin >> elem;
    }

    int x = 0 , y = 0;
    char right = 'R';
    std::list <char> res;

    while (true)
    {
#ifdef DEBUG
        std::cout << "debug: " << x << "," << y << std::endl;
#endif
        res.push_back (move (a , b , x , y , right));
#ifdef DEBUG
        std::cout << res.back () << std::endl;
#endif
        if (x == 0 && y == 0)
        {
            break;
        }
    }
    for (auto && elem : res)
    {
        std::cout << elem;
    }
    std::cout << std::endl;
}

Measured memory_bytes: 3104