5828 {
5829 int x = 0;
5830 int y = 0;
5831 char op;
5832 int step = 0;
5833 set<pair<int, int>> s;
5834 s.insert(make_pair(0, 0));
5835 while(cin >> op) {
5836 step++;
5837 switch(op) {
5838 case 'U':
5839 x--;
5840 if(s.contains(make_pair(x, y)) ||
5841 s.contains(make_pair(x - 1, y)) ||
5842 s.contains(make_pair(x, y + 1)) ||
5843 s.contains(make_pair(x, y - 1))) {
5844 cout << "NO";
5845 return 0;
5846 }
5847 break;
5848 case 'D':
5849 x++;
5850 if(s.contains(make_pair(x, y)) ||
5851 s.contains(make_pair(x + 1, y)) ||
5852 s.contains(make_pair(x, y + 1)) ||
5853 s.contains(make_pair(x, y - 1))) {
5854 cout << "NO";
5855 return 0;
5856 }
5857 break;
5858 case 'L':
5859 y--;
5860 if(s.contains(make_pair(x, y)) ||
5861 s.contains(make_pair(x, y - 1)) ||
5862 s.contains(make_pair(x + 1, y)) ||
5863 s.contains(make_pair(x - 1, y))) {
5864 cout << "NO";
5865 return 0;
5866 }
5867 break;
5868 case 'R':
5869 y++;
5870 if(s.contains(make_pair(x, y)) ||
5871 s.contains(make_pair(x, y + 1)) ||
5872 s.contains(make_pair(x + 1, y)) ||
5873 s.contains(make_pair(x - 1, y))) {
5874 cout << "NO";
5875 return 0;
5876 }
5877 break;
5878 default:
5879 step--;
5880 break;
5881 }
5882 s.insert(make_pair(x, y));
5883 }
5884 if(step == 1) {
5885 cout << "YES";
5886 return 0;
5887 }
5888 if(abs(x) <= 1 && y == 0 || x == 0 && abs(y) <= 1) {
5889 cout << "NO";
5890 } else {
5891 cout << "YES";
5892 }
5893 return 0;
5894 }