#include <string>
#include <vector>
#include <algorithm>
#include <numeric>
#include <set>
#include <map>
#include <queue>
#include <iostream>
#include <sstream>
#include <cstdio>
#include <cmath>
#include <ctime>
#include <cstring>
#include <cctype>
#include <cassert>
#include <limits>
#include <functional>
#include <bitset>
#define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i))
#define rer(i,l,u) for(int (i)=(int)(l);(i)<=(int)(u);++(i))
#define reu(i,l,u) for(int (i)=(int)(l);(i)<(int)(u);++(i))
#if defined(_MSC_VER) || __cplusplus > 199711L
#define aut(r,v) auto r = (v)
#else
#define aut(r,v) typeof(v) r = (v)
#endif
#define each(it,o) for(aut(it, (o).begin()); it != (o).end(); ++ it)
#define all(o) (o).begin(), (o).end()
#define pb(x) push_back(x)
#define mp(x,y) make_pair((x),(y))
#define mset(m,v) memset(m,v,sizeof(m))
#define INF 0x3f3f3f3f
#define INFL 0x3f3f3f3f3f3f3f3fLL
#include<bits/stdc++.h>
#define lld long long int
#define Max 1000000+7
# define it int
using namespace std;
typedef vector<int> vi; typedef pair<int,int> pii; typedef vector<pair<int,int> > vpii;
typedef long long ll; typedef vector<long long> vl; typedef pair<long long,long long> pll; typedef vector<pair<long long,long long> > vpll;
typedef vector<string> vs; typedef long double ld;
template<typename T, typename U> inline void amin(T &x, U y) { if(y < x) x = y; }
template<typename T, typename U> inline void amax(T &x, U y) { if(x < y) x = y; }
it rupc[Max];
lld rupc7[Max];
it n; it q,i,j,k,m;
struct ass{lld y;it x;};ass bazinga[Max];
it forest[3000007];
bool check(ass hole ,ass boobs);
void make(it xxx,it l,it r);
it supckdick(it xxx,it l,it r,it nip,it x);
it supckboobs(it xxx,it l,it r,it nip,it x);
it main()
{ int kl=100000;
while (kl--){
kl-=2;
}
it l,r,up;
char c,d;
cin>>n; // sd(n);
cin>>q;//sd(q);
for(i=0;i<n;i++)
cin>>rupc[i];// sd(rupc[i]);
make(1,0,n-1);
for(i=0;i<n;i++)
{ int tt=10;
while (tt--){tt--;
}
r=supckboobs(1,0,n-1,rupc[i],i);
l=supckdick(1,0,n-1,rupc[i],i);
//printf("%d %d\n",l,r);
rupc7[i]=(1ll*(r-i+1)*(i-l+1));}
for(i=0;i<n;i++)
{
bazinga[i].x=rupc[i];
bazinga[i].y=rupc7[i];
}
sort(bazinga,bazinga+n,check);
j=0;k=bazinga[0].y;
for(i=1;i<n;i++)
{
if(bazinga[i].x==bazinga[i-1].x)
{
k+=bazinga[i].y;
}
else
{
rupc[j]=bazinga[i-1].x;
rupc7[j]=k;
k=bazinga[i].y;
j++;
}
}
rupc[j]=bazinga[i-1].x;
rupc7[j]=k;
for(i=1;i<=j;i++)
rupc7[i]+=rupc7[i-1];
// for(i=0;i<=j;i++)
// printf("%lld \n",rupc7[i]);
// for(i=0;i<=j;i++)
// {
// printf("%d %lld \n",rupc[i],rupc7[i]);
// }
//printf("1\n");
while(q--)
{
c=getchar();
c=getchar();
cin>>i;/// sd(i);
d=getchar();
d=getchar();
if(c=='=')
{
l=0;up=j;k=0;
while(l<=up)
{m=(l+up)/2;
if(rupc[m]==i)
{if(m==0){k=rupc7[0];
} else{k=rupc7[m]-rupc7[m-1];
}
break; }
if(rupc[m]<i)
{ l=m+1;
}
else{up=m-1;
} } }
else if(c=='<')
{
if(rupc[0]>=i)
k=0;
else if(rupc[j]<i)
k=rupc7[j];
else
{ l=0; up=j;
while(l<=up)
{m=(l+up)/2;
if(rupc[m]<i&&rupc[m+1]>=i)
{ k=rupc7[m];
break;}
if(rupc[m]<i)
{ l=m+1;
}
else
{ up=m-1;
}
}
}
}
else if (c=='>')
{if(rupc[0]>i)
{ k=rupc7[j];
}
else if(rupc[j]<=i)
{ k=0;
}
else
{ l=0;up=j; while(l<=up)
{m=(l+up)/2;
if(rupc[m]>i&&rupc[m-1]<=i)
{ k=rupc7[j]-rupc7[m-1];
break; }
if(rupc[m]<=i)
{ l=m+1; }
else{up=m-1;
}}}
}
if(k%2==1)
{ printf("%c",d);
}
else
{
if(d=='C')
cout<<"D";/// printf("D");
else
cout<<"C";
}
//printf("%d\n",k);
}
return 0;
}
bool check(ass hole ,ass boobs){ return hole.x<boobs.x;}
void make(it xxx,it l,it r)
{
if(l>r)
return;
if(l==r)
{
forest[xxx]=rupc[r];
return;
}
make(xxx*2,l,(l+r)/2);
make(xxx*2+1,1+(l+r)/2,r);
forest[xxx]=max(forest[xxx*2],forest[xxx*2+1]);
}
it supckboobs(it xxx,it l,it r,it nip,it x)
{
if(l>r||r<x||l>x)
return x;
if(r>=x&&l<=x)
{
if(forest[xxx]<=nip)
{
if(r<n-1){
if(rupc[r+1]>nip)
return r;
return supckboobs(1,0,n-1,nip,r+1);}
return r;
}
}
if(l==r)
{ return x;
}
it hoo=supckboobs(xxx*2,l,(l+r)/2,nip,x);
it haa=supckboobs(xxx*2+1,(l+r)/2 +1,r,nip,x);
return max(hoo,haa);
}
it supckdick(it xxx,it l,it r,it nip,it x)
{
if(l>r||r<x||l>x)
return x;
if(r>=x)
{
if(l<=x)
{if(forest[xxx]<nip)
{
if(l>0){
if(rupc[l-1]>=nip)
return l;
return supckdick(1,0,n-1,nip,l-1);}
return l;
}
}
}
if(l==r&&l!=x)
return x;
if(x>0){
if(rupc[x-1]>=nip)
return x;
return supckdick(1,0,n-1,nip,x-1);}
it hoo=supckdick(xxx*2,l,(l+r)/2,nip,x);
it haa=supckdick(xxx*2+1,(l+r)/2 +1,r,nip,x);
return min(hoo,haa);
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPG51bWVyaWM+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Y3RpbWU+CiNpbmNsdWRlIDxjc3RyaW5nPgojaW5jbHVkZSA8Y2N0eXBlPgojaW5jbHVkZSA8Y2Fzc2VydD4KI2luY2x1ZGUgPGxpbWl0cz4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxiaXRzZXQ+CiNkZWZpbmUgcmVwKGksbikgZm9yKGludCAoaSk9MDsoaSk8KGludCkobik7KysoaSkpCiNkZWZpbmUgcmVyKGksbCx1KSBmb3IoaW50IChpKT0oaW50KShsKTsoaSk8PShpbnQpKHUpOysrKGkpKQojZGVmaW5lIHJldShpLGwsdSkgZm9yKGludCAoaSk9KGludCkobCk7KGkpPChpbnQpKHUpOysrKGkpKQojaWYgZGVmaW5lZChfTVNDX1ZFUikgfHwgX19jcGx1c3BsdXMgPiAxOTk3MTFMCiNkZWZpbmUgYXV0KHIsdikgYXV0byByID0gKHYpCiNlbHNlCiNkZWZpbmUgYXV0KHIsdikgdHlwZW9mKHYpIHIgPSAodikKI2VuZGlmCiNkZWZpbmUgZWFjaChpdCxvKSBmb3IoYXV0KGl0LCAobykuYmVnaW4oKSk7IGl0ICE9IChvKS5lbmQoKTsgKysgaXQpCiNkZWZpbmUgYWxsKG8pIChvKS5iZWdpbigpLCAobykuZW5kKCkKI2RlZmluZSBwYih4KSBwdXNoX2JhY2soeCkKI2RlZmluZSBtcCh4LHkpIG1ha2VfcGFpcigoeCksKHkpKQojZGVmaW5lIG1zZXQobSx2KSBtZW1zZXQobSx2LHNpemVvZihtKSkKI2RlZmluZSBJTkYgMHgzZjNmM2YzZgojZGVmaW5lIElORkwgMHgzZjNmM2YzZjNmM2YzZjNmTEwKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSAgbGxkIGxvbmcgbG9uZyBpbnQKI2RlZmluZSBNYXggMTAwMDAwMCs3CiMgZGVmaW5lIGl0IGludAp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpOyB0eXBlZGVmIHBhaXI8aW50LGludD4gcGlpOyB0eXBlZGVmIHZlY3RvcjxwYWlyPGludCxpbnQ+ID4gdnBpaTsKdHlwZWRlZiBsb25nIGxvbmcgbGw7IHR5cGVkZWYgdmVjdG9yPGxvbmcgbG9uZz4gdmw7IHR5cGVkZWYgcGFpcjxsb25nIGxvbmcsbG9uZyBsb25nPiBwbGw7IHR5cGVkZWYgdmVjdG9yPHBhaXI8bG9uZyBsb25nLGxvbmcgbG9uZz4gPiB2cGxsOwp0eXBlZGVmIHZlY3RvcjxzdHJpbmc+IHZzOyB0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgdm9pZCBhbWluKFQgJngsIFUgeSkgeyBpZih5IDwgeCkgeCA9IHk7IH0KdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIHZvaWQgYW1heChUICZ4LCBVIHkpIHsgaWYoeCA8IHkpIHggPSB5OyB9Cml0IHJ1cGNbTWF4XTsKbGxkIHJ1cGM3W01heF07Cml0IG47IGl0IHEsaSxqLGssbTsKc3RydWN0IGFzc3tsbGQgeTtpdCB4O307YXNzIGJhemluZ2FbTWF4XTsKaXQgZm9yZXN0WzMwMDAwMDddOwpib29sIGNoZWNrKGFzcyBob2xlICxhc3MgYm9vYnMpOwp2b2lkIG1ha2UoaXQgeHh4LGl0IGwsaXQgcik7Cml0IHN1cGNrZGljayhpdCB4eHgsaXQgbCxpdCByLGl0IG5pcCxpdCB4KTsKaXQgc3VwY2tib29icyhpdCB4eHgsaXQgbCxpdCByLGl0IG5pcCxpdCB4KTsKaXQgbWFpbigpCnsgICBpbnQga2w9MTAwMDAwOwogICAgd2hpbGUgKGtsLS0pewogICAgCWtsLT0yOwogICAgfQoJICAgaXQgbCxyLHVwOwogICAgY2hhciBjLGQ7CiAgICAgY2luPj5uOyAvLyBzZChuKTsKICAgIGNpbj4+cTsvL3NkKHEpOwogICAgZm9yKGk9MDtpPG47aSsrKQogICAgICAgY2luPj5ydXBjW2ldOy8vIHNkKHJ1cGNbaV0pOwogICAgbWFrZSgxLDAsbi0xKTsKICAgIGZvcihpPTA7aTxuO2krKykKICAgIHsgaW50IHR0PTEwOyAgCgkgd2hpbGUgKHR0LS0pe3R0LS07CgkgfQogICAgICAgIHI9c3VwY2tib29icygxLDAsbi0xLHJ1cGNbaV0saSk7CiAgICAgICAgbD1zdXBja2RpY2soMSwwLG4tMSxydXBjW2ldLGkpOwogICAgICAgIC8vcHJpbnRmKCIlZCAlZFxuIixsLHIpOwogICAgICAgIHJ1cGM3W2ldPSgxbGwqKHItaSsxKSooaS1sKzEpKTt9CiAgICAgICAgZm9yKGk9MDtpPG47aSsrKQogICAgICAgIHsKICAgICAgICAgICAgYmF6aW5nYVtpXS54PXJ1cGNbaV07CiAgICAgICAgICAgIGJhemluZ2FbaV0ueT1ydXBjN1tpXTsKICAgICAgICB9CiAgICAgICAgc29ydChiYXppbmdhLGJhemluZ2ErbixjaGVjayk7CiAgICAgICAgaj0wO2s9YmF6aW5nYVswXS55OwogICAgICAgIGZvcihpPTE7aTxuO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKGJhemluZ2FbaV0ueD09YmF6aW5nYVtpLTFdLngpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGsrPWJhemluZ2FbaV0ueTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJ1cGNbal09YmF6aW5nYVtpLTFdLng7CiAgICAgICAgICAgICAgICBydXBjN1tqXT1rOwogICAgICAgICAgICAgICAgaz1iYXppbmdhW2ldLnk7CiAgICAgICAgICAgICAgICBqKys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcnVwY1tqXT1iYXppbmdhW2ktMV0ueDsKICAgICAgICBydXBjN1tqXT1rOwogICAgICAgIGZvcihpPTE7aTw9ajtpKyspCiAgICAgICAgICAgIHJ1cGM3W2ldKz1ydXBjN1tpLTFdOwovLyAgICAgICAgZm9yKGk9MDtpPD1qO2krKykKLy8gICAgICAgICAgIHByaW50ZigiJWxsZCBcbiIscnVwYzdbaV0pOwovLyAgICAgICAgZm9yKGk9MDtpPD1qO2krKykKLy8gICAgICAgIHsKLy8gICAgICAgICAgICBwcmludGYoIiVkICVsbGQgXG4iLHJ1cGNbaV0scnVwYzdbaV0pOwovLyAgICAgICAgfQogICAgICAgIC8vcHJpbnRmKCIxXG4iKTsKICAgICAgICB3aGlsZShxLS0pCiAgICAgICAgewogICAgICAgICAgICBjPWdldGNoYXIoKTsKICAgICAgICAgICAgYz1nZXRjaGFyKCk7CiAgICAgICAgICBjaW4+Pmk7Ly8vICBzZChpKTsKICAgICAgICAgICAgZD1nZXRjaGFyKCk7CiAgICAgICAgICAgIGQ9Z2V0Y2hhcigpOwogICAgICAgICAgICAgICBpZihjPT0nPScpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGw9MDt1cD1qO2s9MDsKICAgICAgICAgICAgICAgIHdoaWxlKGw8PXVwKQogICAgICAgICAgICAgICAge209KGwrdXApLzI7CiAgICAgICAgICAgICAgICAgICAgaWYocnVwY1ttXT09aSkKICAgICAgICAgICAgICAgICAgICB7aWYobT09MCl7az1ydXBjN1swXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZXtrPXJ1cGM3W21dLXJ1cGM3W20tMV07CiAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyB9CiAgICAgICAgICAgICAgICAgICAgaWYocnVwY1ttXTxpKQogICAgICAgICAgICAgICAgICAgICAgIHsgbD1tKzE7CiAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2V7dXA9bS0xOwogICAgICAgICAgICAgICAgICAgICAgICB9IH0gfQogICAgICAgICAgIGVsc2UgIGlmKGM9PSc8JykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYocnVwY1swXT49aSkKICAgICAgICAgICAgICAgICAgICBrPTA7CiAgICAgICAgICAgICAgICBlbHNlIGlmKHJ1cGNbal08aSkKICAgICAgICAgICAgICAgICAgICBrPXJ1cGM3W2pdOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgeyBsPTA7IHVwPWo7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUobDw9dXApCiAgICAgICAgICAgICAgICAgICAge209KGwrdXApLzI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJ1cGNbbV08aSYmcnVwY1ttKzFdPj1pKQogICAgICAgICAgICAgICAgICAgICAgICB7IGs9cnVwYzdbbV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazt9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJ1cGNbbV08aSkKICAgICAgICAgICAgICAgICAgICAgICAgICB7ICBsPW0rMTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB1cD1tLTE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICAgICAgZWxzZSBpZiAoYz09Jz4nKQogICAgICAgICAgICB7aWYocnVwY1swXT5pKQogICAgICAgICAgICAgICAgICAgeyBrPXJ1cGM3W2pdOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZihydXBjW2pdPD1pKQogICAgICAgICAgICAgICAgICAgeyBrPTA7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7IGw9MDt1cD1qOyB3aGlsZShsPD11cCkKICAgICAgICAgICAgICAgICAgICB7bT0obCt1cCkvMjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYocnVwY1ttXT5pJiZydXBjW20tMV08PWkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsgaz1ydXBjN1tqXS1ydXBjN1ttLTFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7IH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYocnVwY1ttXTw9aSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsJbD1tKzE7IH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXt1cD1tLTE7CiAgICAgICAgICAgICAgICAgICAgICAgIH19fQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKGslMj09MSkKICAgICAgICAgICAgICAgICB7ICAgcHJpbnRmKCIlYyIsZCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKGQ9PSdDJykKICAgICAgICAgICAgICAgICAgY291dDw8IkQiOy8vLyAgcHJpbnRmKCJEIik7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICBjb3V0PDwiQyI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy9wcmludGYoIiVkXG4iLGspOwogICAgICAgIH0KICAgIHJldHVybiAwOwp9CmJvb2wgY2hlY2soYXNzIGhvbGUgLGFzcyBib29icyl7IHJldHVybiBob2xlLng8Ym9vYnMueDt9CnZvaWQgbWFrZShpdCB4eHgsaXQgbCxpdCByKQp7CiAgICBpZihsPnIpCiAgICAgICAgcmV0dXJuOwogICAgaWYobD09cikKICAgIHsKICAgICAgICBmb3Jlc3RbeHh4XT1ydXBjW3JdOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIG1ha2UoeHh4KjIsbCwobCtyKS8yKTsKICAgIG1ha2UoeHh4KjIrMSwxKyhsK3IpLzIscik7CiAgICBmb3Jlc3RbeHh4XT1tYXgoZm9yZXN0W3h4eCoyXSxmb3Jlc3RbeHh4KjIrMV0pOwp9Cml0IHN1cGNrYm9vYnMoaXQgeHh4LGl0IGwsaXQgcixpdCBuaXAsaXQgeCkKewogICAgaWYobD5yfHxyPHh8fGw+eCkKICAgICAgICByZXR1cm4geDsKICAgIGlmKHI+PXgmJmw8PXgpCiAgICB7CiAgICAgICAgaWYoZm9yZXN0W3h4eF08PW5pcCkKICAgICAgICB7CiAgICAgICAgICAgIGlmKHI8bi0xKXsKICAgICAgICAgICAgaWYocnVwY1tyKzFdPm5pcCkKICAgICAgICAgICAgICAgIHJldHVybiByOwogICAgICAgICAgICByZXR1cm4gc3VwY2tib29icygxLDAsbi0xLG5pcCxyKzEpO30KICAgICAgICAgICAgcmV0dXJuIHI7CiAgICAgICAgfQogICAgfQogICAgaWYobD09cikKICAgICAgIHsgcmV0dXJuIHg7CiAgICAgICB9CiAgICBpdCBob289c3VwY2tib29icyh4eHgqMixsLChsK3IpLzIsbmlwLHgpOwogICAgaXQgaGFhPXN1cGNrYm9vYnMoeHh4KjIrMSwobCtyKS8yICsxLHIsbmlwLHgpOwogICAgcmV0dXJuIG1heChob28saGFhKTsKfQppdCBzdXBja2RpY2soaXQgeHh4LGl0IGwsaXQgcixpdCBuaXAsaXQgeCkKewogICAgaWYobD5yfHxyPHh8fGw+eCkKICAgICAgICByZXR1cm4geDsKICAgIGlmKHI+PXgpCiAgICB7CiAgICAgICBpZihsPD14KSAKCSAgIHtpZihmb3Jlc3RbeHh4XTxuaXApCiAgICAgICAgewogICAgICAgICAgICBpZihsPjApewogICAgICAgICAgICBpZihydXBjW2wtMV0+PW5pcCkKICAgICAgICAgICAgICAgIHJldHVybiBsOwogICAgICAgICAgICByZXR1cm4gc3VwY2tkaWNrKDEsMCxuLTEsbmlwLGwtMSk7fQogICAgICAgICAgICByZXR1cm4gbDsKICAgICAgICB9CgkgICB9CiAgICB9CiAgICBpZihsPT1yJiZsIT14KQogICAgICAgIHJldHVybiB4OwogICAgaWYoeD4wKXsKICAgICAgICBpZihydXBjW3gtMV0+PW5pcCkKICAgICAgICAgICAgcmV0dXJuIHg7CiAgICByZXR1cm4gc3VwY2tkaWNrKDEsMCxuLTEsbmlwLHgtMSk7fQogICAgaXQgaG9vPXN1cGNrZGljayh4eHgqMixsLChsK3IpLzIsbmlwLHgpOwogICAgaXQgaGFhPXN1cGNrZGljayh4eHgqMisxLChsK3IpLzIgKzEscixuaXAseCk7CiAgICByZXR1cm4gbWluKGhvbyxoYWEpOwp9Cg==