#include <bits/stdc++.h>
using namespace std;
template <typename Arg1>
void __f(const char* name, Arg1&& arg1) {
  cout << name << " : " << arg1 << "\n";
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args) {
  const char* comma = strchr(names + 1, ',');
  cout.write(names, comma - names) << " : " << arg1 << " , ";
  __f(comma + 1, args...);
}
template <typename T>
inline T gcd(T a, T b) {
  return (b ? gcd(b, a % b) : a);
}
template <typename T>
T lcm(T a, T b) {
  return (a * (b / gcd(a, b)));
}
template <typename T>
T mod(T a, T b) {
  return (a < b ? a : a % b);
}
template <typename T>
T mod_neg(T a, T b) {
  a = mod(a, b);
  if (a < 0) {
    a += b;
  }
  return a;
}
template <typename T>
T power(T e, T n) {
  T x = 1, p = e;
  while (n) {
    if (n & 1) x = x * p;
    p = p * p;
    n >>= 1;
  }
  return x;
}
template <typename T>
T power(T e, T n, T m) {
  T x = 1 % m, p = e % m;
  while (n) {
    if (n & 1) x = mod(x * p, m);
    p = mod(p * p, m);
    n >>= 1;
  }
  return x;
}
template <typename T>
T extended_euclid(T a, T b, T& x, T& y) {
  T xx = 0, yy = 1;
  y = 0;
  x = 1;
  while (b) {
    T q = a / b, t = b;
    b = a % b;
    a = t;
    t = xx;
    xx = x - q * xx;
    x = t;
    t = yy;
    yy = y - q * yy;
    y = t;
  }
  return a;
}
template <typename T>
T mod_inverse(T a, T n) {
  T x, y;
  T d = extended_euclid(a, n, x, y);
  return (d > 1 ? -1 : mod_neg(x, n));
}
long long pow10(long long x) {
  long long ret = 0;
  while (x) {
    ret++;
    x /= 10;
  }
  return ret;
}
int main() {
  ios::sync_with_stdio(0);
  int i, j, k;
  int t;
  cin >> t;
  while (t--) {
    int n;
    cin >> n;
    string s;
    cin >> s;
    map<pair<int, int>, vector<int> > m;
    pair<int, int> temm = {0, 0};
    m[temm] = vector<int>();
    m[temm].push_back(0);
    int curup = 0, curleft = 0;
    for (i = 0; i < n; ++i) {
      if (s[i] == 'U') curup++;
      if (s[i] == 'D') curup--;
      if (s[i] == 'L') curleft++;
      if (s[i] == 'R') curleft--;
      pair<int, int> temp = {curleft, curup};
      if (m.count(temp))
        m[temp].push_back(i + 1);
      else {
        m[temp] = vector<int>();
        m[temp].push_back(i + 1);
      }
    }
    pair<int, int> ans = {-1, -1};
    long long best = 1e18;
    for (auto x1 : m) {
      auto x = x1.second;
      for (i = 1; i < x.size(); ++i) {
        if (x[i] - x[i - 1] < best) {
          best = x[i] - x[i - 1];
          ans = {x[i - 1] + 1, x[i]};
        }
      }
    }
    if (best == 1e18)
      cout << "-1\n";
    else
      cout << ans.first << " " << ans.second << "\n";
  }
  return 0;
}
