#include <bits/stdc++.h>
#define pub push_back
#define FOR(i, l, r, x) for(int i = l; i <= r; i += x)
#define FOD(i, l, r, x) for(int i = l; i >= r; i -= x)
#define pii pair<int, int>
#define fi first
#define se second
#define all(x) begin(x), end(x)
#define int long long
using namespace std;
const int N = 1e6 + 5;
const int M = 1e6 + 5;
const int mod1 = 2e9 + 11;
const int mod2 = 1e9 + 7;
const int inf = 1e18;
int n, m, q;
pii base[N], fa[N], fb[N];
string a, b;
int mulMod(int a, int b, int mod) {
return (a * b) % mod;
}
int minusMod(int a, int b, int mod) {
return ((a - b) % mod + mod) % mod;
}
void calBase() {
base[0].fi = 1;
base[0].se = 1;
FOR(i, 1, max(n, m), 1) {
base[i].fi = (base[i - 1].fi * 256) % mod1;
base[i].se = (base[i - 1].se * 256) % mod2;
}
}
void hashing(string s, int n, pii *f) {
f[0].fi = 0;
f[0].se = 0;
FOR(i, 1, n, 1) {
f[i].fi = (f[i - 1].fi * 256 + s[i]) % mod1;
f[i].se = (f[i - 1].se * 256 + s[i]) % mod2;
}
}
pii getHash(int l, int r, pii *f) {
int x = minusMod(f[r].fi, mulMod(f[l - 1].fi, base[r - l + 1].fi, mod1), mod1);
int y = minusMod(f[r].se, mulMod(f[l - 1].se, base[r - l + 1].se, mod2), mod2);
return {x, y};
}
void input() {
cin >> n >> m;
cin >> a >> b;
a.insert(0, " ");
b.insert(0, " ");
calBase();
hashing(a, n, fa);
hashing(b, m, fb);
}
void solve() {
input();
cin >> q;
while(q --) {
int l1, r1, l2, r2;
cin >> l1 >> r1 >> l2 >> r2;
int lenA = r1 - l1 + 1;
int lenB = r2 - l2 + 1;
int low = 1;
int high = min(lenA, lenB);
int lcp = 0; //longest common prefix (dãy con tiền tố dài nhất)
while(low <= high) {
int mid = (low + high) >> 1;
if (getHash(l1, l1 + mid - 1, fa) == getHash(l2, l2 + mid - 1, fb)) {
lcp = mid;
low = mid + 1;
}
else high = mid - 1;
}
if (l1 + lcp - 1 == r1 && l2 + lcp - 1 == r2) {
cout << "=";
}
else {
if (l1 + lcp - 1 < r1 && l2 + lcp - 1 == r2) {
cout << ">";
}
else if (l1 + lcp - 1 == r1 && l2 + lcp - 1 < r2) {
cout << "<";
}
else {
if (a[l1 + lcp] > b[l2 + lcp]) {
cout << ">";
}
else {
cout << "<";
}
}
}
}
}
signed main() {
#define name "baitap"
if (ifstream(name".inp")) {
freopen(name".inp", "r", stdin);
freopen(name".out", "w", stdout);
}
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgcHViIHB1c2hfYmFjawojZGVmaW5lIEZPUihpLCBsLCByLCB4KSBmb3IoaW50IGkgPSBsOyBpIDw9IHI7IGkgKz0geCkKI2RlZmluZSBGT0QoaSwgbCwgciwgeCkgZm9yKGludCBpID0gbDsgaSA+PSByOyBpIC09IHgpCiNkZWZpbmUgcGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBhbGwoeCkgYmVnaW4oeCksIGVuZCh4KQojZGVmaW5lIGludCBsb25nIGxvbmcKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBOID0gMWU2ICsgNTsKY29uc3QgaW50IE0gPSAxZTYgKyA1Owpjb25zdCBpbnQgbW9kMSA9IDJlOSArIDExOwpjb25zdCBpbnQgbW9kMiA9IDFlOSArIDc7CmNvbnN0IGludCBpbmYgPSAxZTE4OwoKaW50IG4sIG0sIHE7CnBpaSBiYXNlW05dLCBmYVtOXSwgZmJbTl07CnN0cmluZyBhLCBiOwoKaW50IG11bE1vZChpbnQgYSwgaW50IGIsIGludCBtb2QpIHsKICAgIHJldHVybiAoYSAqIGIpICUgbW9kOwp9CmludCBtaW51c01vZChpbnQgYSwgaW50IGIsIGludCBtb2QpIHsKICAgIHJldHVybiAoKGEgLSBiKSAlIG1vZCArIG1vZCkgJSBtb2Q7Cn0Kdm9pZCBjYWxCYXNlKCkgewogICAgYmFzZVswXS5maSA9IDE7CiAgICBiYXNlWzBdLnNlID0gMTsKICAgIEZPUihpLCAxLCBtYXgobiwgbSksIDEpIHsKICAgICAgICBiYXNlW2ldLmZpID0gKGJhc2VbaSAtIDFdLmZpICogMjU2KSAlIG1vZDE7CiAgICAgICAgYmFzZVtpXS5zZSA9IChiYXNlW2kgLSAxXS5zZSAqIDI1NikgJSBtb2QyOwogICAgfQp9CnZvaWQgaGFzaGluZyhzdHJpbmcgcywgaW50IG4sIHBpaSAqZikgewogICAgZlswXS5maSA9IDA7CiAgICBmWzBdLnNlID0gMDsKICAgIEZPUihpLCAxLCBuLCAxKSB7CiAgICAgICAgZltpXS5maSA9IChmW2kgLSAxXS5maSAqIDI1NiArIHNbaV0pICUgbW9kMTsKICAgICAgICBmW2ldLnNlID0gKGZbaSAtIDFdLnNlICogMjU2ICsgc1tpXSkgJSBtb2QyOwogICAgfQp9CnBpaSBnZXRIYXNoKGludCBsLCBpbnQgciwgcGlpICpmKSB7CiAgICBpbnQgeCA9IG1pbnVzTW9kKGZbcl0uZmksIG11bE1vZChmW2wgLSAxXS5maSwgYmFzZVtyIC0gbCArIDFdLmZpLCBtb2QxKSwgbW9kMSk7CiAgICBpbnQgeSA9IG1pbnVzTW9kKGZbcl0uc2UsIG11bE1vZChmW2wgLSAxXS5zZSwgYmFzZVtyIC0gbCArIDFdLnNlLCBtb2QyKSwgbW9kMik7CiAgICByZXR1cm4ge3gsIHl9Owp9CnZvaWQgaW5wdXQoKSB7CiAgICBjaW4gPj4gbiA+PiBtOwogICAgY2luID4+IGEgPj4gYjsKICAgIGEuaW5zZXJ0KDAsICIgIik7CiAgICBiLmluc2VydCgwLCAiICIpOwogICAgY2FsQmFzZSgpOwogICAgaGFzaGluZyhhLCBuLCBmYSk7CiAgICBoYXNoaW5nKGIsIG0sIGZiKTsKfQp2b2lkIHNvbHZlKCkgewogICAgaW5wdXQoKTsKICAgIGNpbiA+PiBxOwogICAgd2hpbGUocSAtLSkgewogICAgICAgIGludCBsMSwgcjEsIGwyLCByMjsKICAgICAgICBjaW4gPj4gbDEgPj4gcjEgPj4gbDIgPj4gcjI7CgogICAgICAgIGludCBsZW5BID0gcjEgLSBsMSArIDE7CiAgICAgICAgaW50IGxlbkIgPSByMiAtIGwyICsgMTsKCgogICAgICAgIGludCBsb3cgPSAxOwogICAgICAgIGludCBoaWdoID0gbWluKGxlbkEsIGxlbkIpOwogICAgICAgIGludCBsY3AgPSAwOyAvL2xvbmdlc3QgY29tbW9uIHByZWZpeCAoZMOjeSBjb24gdGnhu4FuIHThu5EgZMOgaSBuaOG6pXQpCgogICAgICAgIHdoaWxlKGxvdyA8PSBoaWdoKSB7CiAgICAgICAgICAgIGludCBtaWQgPSAobG93ICsgaGlnaCkgPj4gMTsKICAgICAgICAgICAgaWYgKGdldEhhc2gobDEsIGwxICsgbWlkIC0gMSwgZmEpID09IGdldEhhc2gobDIsIGwyICsgbWlkIC0gMSwgZmIpKSB7CiAgICAgICAgICAgICAgICBsY3AgPSBtaWQ7CiAgICAgICAgICAgICAgICBsb3cgPSBtaWQgKyAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaGlnaCA9IG1pZCAtIDE7CiAgICAgICAgfQoKCiAgICAgICAgaWYgKGwxICsgbGNwIC0gMSA9PSByMSAmJiBsMiArIGxjcCAtIDEgPT0gcjIpIHsKICAgICAgICAgICAgY291dCA8PCAiPSI7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAobDEgKyBsY3AgLSAxIDwgcjEgJiYgbDIgKyBsY3AgLSAxID09IHIyKSB7CiAgICAgICAgICAgICAgICBjb3V0IDw8ICI+IjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChsMSArIGxjcCAtIDEgPT0gcjEgJiYgbDIgKyBsY3AgLSAxIDwgcjIpIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgIjwiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKGFbbDEgKyBsY3BdID4gYltsMiArIGxjcF0pIHsKICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICI+IjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIGNvdXQgPDwgIjwiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CnNpZ25lZCBtYWluKCkgewogICAgI2RlZmluZSBuYW1lICJiYWl0YXAiCiAgICBpZiAoaWZzdHJlYW0obmFtZSIuaW5wIikpIHsKICAgICAgICBmcmVvcGVuKG5hbWUiLmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4obmFtZSIub3V0IiwgInciLCBzdGRvdXQpOwogICAgfQogICAgCiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyAKICAgIGNpbi50aWUoMCk7IAogICAgY291dC50aWUoMCk7CiAgICAKICAgIHNvbHZlKCk7Cn0K