#include<iostream>
#include
<cstdio>
#include
<string>
#include
<cstdlib>
#include
<algorithm>
using namespace std;

typedef 
struct node
{
    
int b,e;
    
char c;
}
Node;

Node s[
2001],r[20001];
int n,r_size,mx,ans_b,ans_e;
/*
bool cmp(Node aa,Node bb)
{
    return aa.b > bb.b; 
}
*/


int cmp ( const void *a, const void *b )
{
    Node 
*A, *B;
    A 
= ( Node * ) a, B = ( Node * ) b ;
    
return A->> B->? 1 : -1;
}


int gt(int a,int b)
{
    
return a > b ? a : b;
}


void init()
{
    
int i;
    r_size 
= 0;
    mx 
= 0;
    
for(i = 0;i < n;i++)
    
{
        scanf(
"%d %d %c",&s[i].b,&s[i].e,&s[i].c);
    }

    memset(r,
0,sizeof(r));
}


void dis()
{
    
int i,k;
    
for(i = 0;i < n;i++)
    
{
        
if(s[i].c == 'w')
        
{
            r[r_size].b 
= s[i].b;
            r[r_size].e 
= s[i].e;
            r_size
++;
        }

        
else if(s[i].c == 'b')
        
{
            
int t_size = r_size;
            
//有四种情况需要考虑
            for(k = 0;k < t_size;k++)
            
{
                
if(s[i].b<= r[k].b && s[i].e >= r[k].b && s[i].e < r[k].e)//黑的在白的一个区间里
                {
                    r[k].b 
= s[i].e + 1;
                }

                
else if(s[i].e >= r[k].e && s[i].b <= r[k].e && s[i].b > r[k].b)//黑的在白的交叉
                {
                    r[k].e 
= s[i].b - 1;
                }

                
else if(s[i].b <= r[k].b && s[i].e >= r[k].e)//
                {
                    r[k].b 
= r[k].e = -1;
                }

                
else if( s[i].b > r[k].b && s[i].e < r[k].e)//不包括临界点
                {
                    r[r_size].e 
= r[k].e;
                    r[r_size].b 
= s[i].e + 1;
                    r[k].e 
= s[i].b - 1;
                    r_size 
++;
                }

            }

        }

    }

    
//sort(r, r + r_size, cmp) ;
    qsort ( r, r_size, sizeof ( Node ), cmp );
    
int size , t_b = -1 , t_e = -2;
    
//临时保存开始和结尾t_b与t_e,线性算法,和求最大字串和类似
    
//设初始为-1-(-2)+1 = 0
    for(i = 0;i < r_size;i++)
    
{
        
if(r[i].b != -1)
        
{
            
if(r[i].b > t_e + 1)
            
{
                size 
= t_e - t_b + 1;
                
if(size > mx)
                
{
                    mx 
= size;
                    ans_b 
= t_b;
                    ans_e 
= t_e;
                }

                t_b 
= r[i].b;
                t_e 
= r[i].e;
            }

            
else
            
{
                t_e 
= gt(r[i].e,t_e);
            }

        }

    }

    size 
= t_e - t_b + 1;
    
if(size > mx)
    
{
        mx 
= size;
        ans_b 
= t_b;
        ans_e 
= t_e;
    }

}


void print()
{
    
if(mx == 0)
    
{         //Oh, my god
        printf("Oh, my god\n");
    }

    
else
    
{
        printf(
"%d %d\n",ans_b,ans_e);
    }

}


int main()
{
    
while(cin>>n)
    
{
        init();
        dis();
        print();
    }

    
return 0;
}