A long time ago (probably even in the first book), Nicholas Flamel, a great alchemist and the creator of the Philosopher's Stone, taught Harry Potter three useful spells. The first one allows you to convert a grams of sand into b grams of lead, the second one allows you to convert c grams of lead into d grams of gold and third one allows you to convert e grams of gold into f grams of sand. When Harry told his friends about these spells, Ron Weasley was amazed. After all, if they succeed in turning sand into lead, lead into gold, and then turning part of the gold into sand again and so on, then it will be possible to start with a small amount of sand and get huge amounts of gold! Even an infinite amount of gold! Hermione Granger, by contrast, was skeptical about that idea. She argues that according to the law of conservation of matter getting an infinite amount of matter, even using magic, is impossible. On the contrary, the amount of matter may even decrease during transformation, being converted to magical energy. Though Hermione's theory seems convincing, Ron won't believe her. As far as Ron is concerned, Hermione made up her law of conservation of matter to stop Harry and Ron wasting their time with this nonsense, and to make them go and do homework instead. That's why Ron has already collected a certain amount of sand for the experiments. A quarrel between the friends seems unavoidable...Help Harry to determine which one of his friends is right, and avoid the quarrel after all. To do this you have to figure out whether it is possible to get the amount of gold greater than any preassigned number from some finite amount of sand.

The first line contains 6 integers a, b, c, d, e, f (0 ≤ a, b, c, d, e, f ≤ 1000).

Print "Ron", if it is possible to get an infinitely large amount of gold having a certain finite amount of sand (and not having any gold and lead at all), i.e., Ron is right. Otherwise, print "Hermione".

Ron Hermione Hermione Hermione Ron Hermione Ron

NoteConsider the first sample. Let's start with the 500 grams of sand. Apply the first spell 5 times and turn the sand into 1000 grams of lead. Then apply the second spell 4 times to get 600 grams of gold. Let’s take 400 grams from the resulting amount of gold turn them back into sand. We get 500 grams of sand and 200 grams of gold. If we apply the same operations to 500 grams of sand again, we can get extra 200 grams of gold every time. Thus, you can get 200, 400, 600 etc. grams of gold, i.e., starting with a finite amount of sand (500 grams), you can get the amount of gold which is greater than any preassigned number.In the forth sample it is impossible to get sand, or lead, or gold, applying the spells.In the fifth sample an infinitely large amount of gold can be obtained by using only the second spell, which allows you to receive 1 gram of gold out of nothing. Note that if such a second spell is available, then the first and the third one do not affect the answer at all.The seventh sample is more interesting. We can also start with a zero amount of sand there. With the aid of the third spell you can get sand out of nothing. We get 10000 grams of sand in this manner. Let's get 100 grams of lead using the first spell 100 times. Then make 1 gram of gold from them. We managed to receive 1 gram of gold, starting with a zero amount of sand! Clearly, in this manner you can get an infinitely large amount of gold.

#include<iostream>
using namespace std;

int main()
{
    int a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    if((a*c*e<b*d*f) || (!c&&d)|| (!a&&b&&d))
    {
        cout<<"Ron"<<endl;
        return 0;
    }
    else
    {
        cout<<"Hermione"<<endl;
        return 0;
    }
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int t;
long long ans1,ans2;
int a,b,c,d,e,f;
inline int read()
{
    char ch=getchar();
    int re=0;
    bool fl=1;
    /*
    if (ch=='-')
    {
        fl=0;
        ch=getchar();
    }
    */
    while (ch>='0'&&ch<='9')
    {
        re=re*10+ch-'0';
        ch=getchar();
    }
    return fl?re:-re;
}
inline void write(long long re)
{
    /*
    if (re<0)
    {
        putchar('-');
        re=-re;
    }
    */
    if (re>9) write(re/10);
    putchar(re%10+'0');
}
int main()
{
	//freopen("rich.in","r",stdin);
	//freopen("rich.out","w",stdout);
	t=1;
	while(t--)
	{
		a=read();
		b=read();
		c=read();
		d=read();
		e=read();
		f=read();
		getchar();
		if(!d)
		{
			puts("Hermione\n");
			continue;
		}
		if(!c)
		{
			puts("Ron\n");
			continue;
		}
		if(!b)
		{
			puts("Hermione\n");
			continue;
		}
		if(!a)
		{
			puts("Ron\n");
			continue;
		}
		if(!f)
		{
			puts("Hermione\n");
			continue;
		}
		if(!e)
		{
			puts("Ron\n");
			continue;
		}
		ans1=a*c*e;
		ans2=b*d*f;
		//write(ans1);
		//printf(" ");
		//write(ans2);
		//printf(" \n");
		if(ans1<ans2)
		{
			printf("Ron\n");
		}
		else
		{
			if(ans1==0&&d!=0)
			{
				printf("Ron\n");
			}
			else
			{
				printf("Hermione\n");
			}
		}
	}
}

#include<bits/stdc++.h>
#define IO ios_base::sync_with_stdio(false);cin.tie(NULL)
#define MOD 998244353
using namespace std;
using ll=long long;

main()
{
	IO;
	//freopen("input.txt","r",stdin);

	ll a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;

	if(b*d*f>a*c*e || (!c&&d) || (!a&&b&&d))
		cout<<"Ron";
	else
		cout<<"Hermione";
}

#include<bits/stdc++.h>
using namespace std;
#define pi 3.14159265359
#define int long long
#define pii pair<int,int>
const int mod=1e9+7;

int dx[]={-1,0,1,0};
int dy[]={0,-1,0,1};

int power(int x,int p)
{
  int res=1;
  while(p){
    if(p&1)
    {
      res=(res*x)%mod;
    }
    x=(x*x)%mod;
    p>>=1;
  }
  return res;
}

int32_t  main()
{
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);

  #ifndef ONLINE_JUDGE
  freopen("input.txt","rt",stdin);
  freopen("output.txt","wt",stdout);
  #endif
int a,b,c,d,e,f;
cin>>a>>b>>c>>d>>e>>f;

if((a==0 && b!=0 && d!=0 ) ||(c==0&&d))
{
  cout<<"Ron\n"; return 0;
}
if(b==0 || d==0 ||f==0)
{
  cout<<"Hermione\n"; return 0;
}
if( (a==0||c==0||e==0) )
{
  cout<<"Ron\n"; return 0;
}

double val=b*d*f;
val=(val/(1.0*a*c*e));
if(val>1.0)
{
  cout<<"Ron\n";
}
else cout<<"Hermione\n";

}

#include<iostream>
using namespace std;

int main(){
    int a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    if((a*c*e<b*d*f)||(!c&&d)||(!a&&b&&d)){
        cout<<"Ron"<<endl;
        return 0;
    }
    cout<<"Hermione"<<endl;
    return 0;
}

#include <iostream>
using namespace std;

int main ()
{
    float a, b, c, d, e, f, spell1 = 0, spell2 = 0, spell3 = 0;
    // float gold;

    bool flag = false;

    cin >> a >> b >> c >> d >> e >> f;

    if ( a && b && c && d && e && f )
    {
        spell1 = b/a;

        spell2 = d/c;

        spell3 = f/e;

        if ( f / spell3 < f * spell1 * spell2 )
            flag = true;
    }
    else
        if ( (!a && b && d) || (!c && d) || ( b && d && !e && f ) )
            flag = true;

    if ( !flag )
        cout << "Hermione" << endl;
    else
        cout << "Ron" << endl;

    return 0;
}

#include <bits/stdc++.h>
using namespace std;

int a, b, c, d, e, f, x, y;

int main () {
	ios_base::sync_with_stdio(0); cin.tie(0);

	cin >> a >> b >> c >> d >> e >> f;
	x = a*c*e;
	y = b*d*f;
	if (x < y && y != 0) cout << "Ron";
	else if (d == 0) cout << "Hermione";
	else if (c == 0) cout << "Ron";
	else if (b == 0) cout << "Hermione";
	else if (a == 0) cout << "Ron";
	else cout << "Hermione";
}

#include<stdio.h>
#include<string.h>
#include<limits.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
#include<ctype.h>
#include<iostream>
#define For(i,x,y) for(i=x;i<=y;i++)
int asalmi(int x){ int i,k=(int)sqrt(x); For(i,2,k) if(x%i==0) return 0; return 1; }
#define swap(x,y) { x=x+y; y=x-y; x=x-y; }
#define min(x,y) ((x<y) ? x : y)
#define max(x,y) ((x>y) ? x : y)
#define wait getchar(),getchar()
#define INPUT "soru.in"
#define OUTPUT "soru.out"
#define oku(ifade,x) scanf(#ifade,&x)
#define oku2(x,y) oku(x),oku(y)
#define yaz(ifade,x) scanf(#ifade,x)
#define kucult(c) ((c>='A' && c<='Z') ? (c+32) : (c) )
#define buyult(c) ((c>='A' && c<='Z') ? (c) : (c-32) )
#define ctrl(c) !(c=='a' || c== 'e' || c=='i' || c=='o' || c=='u' || c=='y')

using namespace std;

int a,b,c,d,e,f;

void read(){
	int i,j;
	double o1=1,o2,o3;
	cin>>a>>b>>c>>d>>e>>f;
	if(b*d*f>a*c*e || (d && c==0) || (e==0 && f && d && !c) || (a==0 && b && c && d)) puts("Ron");
	else puts("Hermione");
}

void solve(){
	int i,j;
}

void write(){
	int i,j;
}

int main(){
	read();
	solve();
	write();
	return 0;
}

#include<bits/stdc++.h>

using namespace std;

int main()
{
	long long int a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
	cout<<(b*d*f>a*c*e||c==0&&d>0||a==0&&b*d>0?"Ron\n":"Hermione\n");
	return 0;
}

#include <iostream>
#include <vector>
#include <algorithm>
#include <tuple>
#include <string>

using namespace std;

int main()
{
#ifdef LOCAL
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
    int a, b, c, d, e, f;
    cin >> a >> b >> c >> d >> e >> f;
    if (d == 0) {

    }
    if ((c == 0 && d != 0)
        || (a == 0 && b != 0 && d != 0)
        || (e == 0 && f != 0 && b != 0 && d != 0)) {
        cout << "Ron\n";
        return 0;
    }
    if (b * d * f > a * c * e) {
        cout << "Ron\n";
        return 0;
    }
    cout << "Hermione\n";
    return 0;
}

#include <iostream>

using namespace std;

int main() {
    int a, b, c, d, e, f;
    cin >> a >> b >> c >> d >> e >> f;

    if(b*d*f > a*c*e || a == 0 && b != 0 && d != 0 || c == 0 && d != 0)
        cout << "Ron" << endl;
    else
        cout << "Hermione" << endl;
}

#include<iostream>
using namespace std;
int main(){
    int a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    if(((b*d*f>a*c*e)||(c==0&&d!=0)||(a==0&&b!=0&&d!=0))&&d!=0){
    	cout<<"Ron"<<endl;
	}else{
		cout<<"Hermione"<<endl;
	}
    return 0;
}

#include<bits/stdc++.h>
#include<cstdio>
#define ll long long
#define back return
using namespace std;
char ch[811][811],mp[2006],ch1[811][811],str;
ll r,i,j,n,m,vis[811][811],sum,aike,dis[811][811],a,b,c,d,e,f,flag[811][811],ban[71720],pick[71720];
queue<ll> qx,qy,qdis;
ll maxx(ll a,ll b)
{
	if(a>=b)
		back a;
	back b;
}
/*void lowbit1(ll x)
{
	x=x&(-x);
}
void bfs(ll dx,ll dy)
{
	memset(dis,0,sizeof(dis));
	dis[dx][dy]=0;
	vis[dx][dy]=0;
	qx.push(dx);
	qy.push(dy);
	while(!qx.empty())
	{
		ll
	}

}*/
void dfs(ll lies,ll q,ll w,ll e)
{
	if(lies+1==1<<n)
	{
		sum++;
		back;
	}
	ll lsbl=((1<<n)-1)&(~(q|w|e|ban[lies]))/*^aike*/;
	while(lsbl)
	{
		//ll lsbl1=;
		lsbl-=(lsbl&(-lsbl));
		dfs(lies+(lsbl&(-lsbl)),(q+(lsbl&(-lsbl)))*2,(w+(lsbl&(-lsbl)))/2,e+1);
	}
}
int main()
{
	ios::sync_with_stdio(false);
	//cin>>n;
	//aike=;
	/*for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			cin>>ch[i][j];
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			if(ch[i][j]='.')
				ban[i]|=(1<<(n-j));
    for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
        {
            cin>>str;
            if(str=='.')
                ban[i]|=(1<<(n-j));
        }

	dfs(0,0,0,1);
	cout<<sum+1<<endl;*/
    cin>>a>>b>>c>>d>>e>>f;
    if(((a*c*e<b*d*f)||(!c&&d)||(!a&&b&&d)))
    {
        cout<<"Ron"<<endl;
        back 0;
    }
    cout<<"Hermione"<<endl;
	back 0;
}

#include<iostream>
#include<algorithm>
using namespace std;

bool sol(int a, int b, int c, int d, int e, int f)
{
	if (a == 0 || b == 0 || c == 0 || d == 0 || e == 0 || f == 0)
	{
		if (c == 0 && d > 0)
			return true;
		if (a == 0 && b > 0 && c > 0 && d > 0)
			return true;
		if (a > 0 && b > 0 && c > 0 && d > 0 && e == 0 && f > 0)
			return true;
		return false;
	}
	{
		double res = 1;
		res *= b*d*f;
		res /= a*c*e;
		return res > 1;
	}
}

int main()
{
	int a, b, c, d, e, f;
	scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &e, &f);
	printf("%s\n", sol(a, b, c, d, e, f) ? "Ron" : "Hermione");

	return 0;
}

#include <bits/stdc++.h>

using namespace std;
#define sz(a) int(a.size())
#define ll  long long
#define ull unsigned long long
#define mod int(1e9+7)
#define endl '\n'
#define ENGZ ios::sync_with_stdio(0);ios_base::sync_with_stdio(0);cin.tie(0) , cout.tie(0) ;
#define pi double(acos(-1))
#define S second
#define F first

//  freopen("input.txt","r",stdin);
// freopen("output.txt","w",stdout);
ll fp(ll n , ll p )
{

    if(p==0)
        return 1 ;
    if(p==1)
        return n ;
    ll res ;
    res = fp(n,p/2)%mod ;
    res = (res*res)%mod ;
    if(p%2)
        res = (res*n)%mod ;
    return res%mod ;
}
int main()
{
    int a ,b ,c ,d ,e ,f ;
    scanf("%d %d %d %d %d %d",&a ,&b ,&c ,&d ,&e ,&f);
    if(e*c*a<f*d*b || a==0 && b*d>0 || c==0 && d>0)
        printf("Ron\n");
    else
        printf("Hermione\n");
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
long long a, b, c, d, e, f;

bool val() {
    if(a == 0 && b && c && d) return true;
    if(c == 0 && d) return true;
    if(e == 0 && f && a && b && c && d) return true;
    if(a && c && e && (b*d*f+a*c*e-1)/(a*c*e) > 1 ) return true;
    return false;
}

int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    cin >> a >> b >> c >> d >> e >> f;
    if(val()) {
            cout << "Ron\n";
    } else {
        cout << "Hermione\n";
    }
    return 0;
}

// #pragma GCC optimize("no-stack-protector")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
// #pragma vector temporal
// #pragma simd
// #pragma GCC diagnostic ignored "-W"

#include<cassert>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<iostream>
#include<iomanip>
#include<sstream>
#include<deque>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<bitset>
#include<vector>
#include<utility>
#include<functional>
#include<complex>
#include<climits>

// #include<ext/pb_ds/assoc_container.hpp>
// #include<ext/pb_ds/tree_policy.hpp>

using namespace std;
// using namespace __gnu_pbds;

#define ll long long
#define ld long double
#define X first
#define Y second
#define pb push_back
#define eb emplace_back
#define pii pair<int,int>
#define vint vector<int>
#define SS stringstream
#define PQ priority_queue
#define MS(x,v) memset((x),(v),sizeof(x))
#define RZUNI(x) sort(x.begin(),x.end()), x.resize(unique(x.begin(),x.end())-x.begin())
#define FLH fflush(stdout)
#define CPPinput ios_base::sync_with_stdio(0); cin.tie(0)
#define FIN(fname) freopen(fname,"r",stdin)
#define FOUT(fname) freopen(fname,"w",stdout)

#define tm Ovuvuevuevue
#define y1 Enyetuenwuevue
#define left Ugbemugbem
#define ws Osas
#define dec tetteterette
#define exp expexpexpexp
#define expl explexplexpl

#define YES cout<<"YES"<<endl
#define NO cout<<"NO"<<endl
#define Yes cout<<"Yes"<<endl
#define No cout<<"No"<<endl

#ifdef WEAK
#include"/home/edison/Coding/cpp/template/debug.cpp"
#define DEB(...) printf(__VA_ARGS__),fflush(stdout)
#define WHR() printf("%s: Line %d",__PRETTY_FUNCTION__,__LINE__),fflush(stdout)
#define LOG(...) printf("%s: Line %d ",__PRETTY_FUNCTION__,__LINE__),printf(__VA_ARGS__),fflush(stdout)
#define DEBUG 1
#define exit(x) cout<<"exit code "<<x<<endl, exit(0)
#else
#define PDE(...) ;
#define DEB(...) ;
#define WHR() ;
#define LOG(...) ;
#define DEBUG 0
#endif

#define lowbit(x) ((x)&(-(x)))

#if __cplusplus >= 201103L
#include<unordered_map>
#include<unordered_set>
#include<tuple>
#endif

void JIZZ(string output=""){cout<<output; exit(0);}

const ld PI=3.14159265358979323846264338327950288;
const ld eps=1e-13;
const ll mod=1e9+7;

void Y(){
    cout<<"Ron"<<endl;
    exit(0);
}
void N(){
    cout<<"Hermione"<<endl;
    exit(0);
}

int main(){
    CPPinput;
    ll a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    if(d==0)N();
    if(c==0)Y();

    if(b==0)N();
    if(a==0)Y();

    if(f==0)N();
    if(e==0)Y();
    double first=1e4;
    double sec=first/a*b/c*d/e*f;
    if(sec>first)Y();
    else N();
}

#include <iostream>
using namespace std;

int main() {
	int a, b, c, d, e, f;
	cin >> a >> b >> c >> d >> e >> f;
	if ((c == 0 && d != 0) || (a == 0 && b != 0 && d != 0))
		cout << "Ron";
	else if (f == 0)
		cout << "Hermione";
	else if (1.0*(b*d) / (a*c) - 1.0*e / f > 0)
		cout << "Ron";
	else
		cout << "Hermione";
}

#include<bits/stdc++.h>
using namespace std;
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/hash_policy.hpp>
//#pragma comment(linker, "/STACK:102400000,102400000")
using namespace __gnu_pbds;
#define _for(i,a,b) for(int i=(a);i<(b);++i)
#define ms(a) memset(a,0,sizeof(a))
#define ms_inf(a) memset(a,0x3f,sizeof(a))
#define ms_ninf(a) memset(a,0xcf,sizeof(a))
#define pb push_back
#define mp make_pair
#define fast ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
//#define lc (o<<1)
//#define rc (o<<1|1)
//#include<ext/pb_ds/priority_queue.hpp>
//typedef __gnu_pbds::priority_queue<no> heap;  //��ƫ��
typedef long long ll;
typedef unsigned long long ull;
ull MOD=212370440130137957ll;
int mod=1e9+7;
ll INF=1e18;
const int maxn=4e5+10;
const int maxl=1000+10;
const double PI=acos(-1.0);
const double eps=1e-8;
int a,b,c,d,e,f;
int main()
{
	fast;cin>>a>>b>>c>>d>>e>>f;
	bool ok=0;
	if(a*c*e<b*d*f)ok=1;
	else
	{
		if(d>0)
		{
			if(c==0)ok=1;
			else
			{
				if(a==0)
				{
					if(b)ok=1;
				}
				else
				{
					if(e==0&&f>0&&b>0)ok=1;
				}
			}
		}
	}
	if(ok)cout<<"Ron";else cout<<"Hermione";
}

#include <cstdio>
typedef long long ll;
const int inf=1100000000000000000LL;
int a,b,c,d,e,f;
ll s,p,g;
ll os,op,og;
void win() {
	printf("Ron\n");
}
void fail() {
	printf("Hermione\n");
}
int main() {
	scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
	int cs=b*d*f;
	int z=a*c*e;
	if (c==0 && d>0 || a*c==0 && b*d>0) {
		win();
		return 0;
	}
	if (cs>z) {
		win();
		return 0;
	} else if (cs<z || cs==z && cs>0) {
		fail();
		return 0;
	}
	fail();
	return 0;
}

#ifndef Local
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,popcnt,abm,mmx,avx")
#endif

#include <bits/stdc++.h>

#include <ext/numeric>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace __gnu_cxx;
using namespace std;

#define popCnt(x) (__builtin_popcountll(x))
#define sz(x) ((int)(x.size()))
#define all(v) begin(v), end(v)
typedef long long Long;
typedef double Double;

template <class T>
istream& operator>>(istream& is, vector<T>& v) {
  for (auto& x : v) {
    is >> x;
  }
  return is;
}

template <class T>
ostream& operator<<(ostream& os, vector<T>& v) {
  for (auto& x : v) {
    os << x << " ";
  }
  return os;
}

const int N = 1003;

Long sum_x[N];
Long sum_y[N];

Long sum_row[N];
Long sum_col[N];

int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#ifdef Local
  freopen("test.in", "r", stdin);
#else
#define endl '\n'
#endif

  Long a, b, c, d, e, f;
  cin >> a >> b >> c >> d >> e >> f;
  Long num = b * d * f;
  Long den = a * c * e;
  if (num > den || a == 0 && b != 0 && d != 0 ||
      e == 0 && f != 0 && b != 0 && d != 0 || c == 0 && d != 0) {
    cout << "Ron" << endl;
  } else {
    cout << "Hermione" << endl;
  }
  return 0;
}

#include <iostream>
using namespace std;int main(){int a,b,c,d,e,f;cin>>a>>b>>c>>d>>e>>f;if(a&&b&&c
&&d&&e&&f){int left=(b*d*f);int right=(c*e);int integral=left/right;int mod=
left%right;if(integral>a||(integral==a&&mod!=0)){cout<<"Ron"<<endl;return 0;}
else{cout<<"Hermione"<<endl;}}else{int connections=0;bool ab=false,bc=false,ca=
false;bool iab=false,ibc=false,ica=false;if(b){ab=true;if(!a)iab=true;}if(d){bc
=true;if(!c)ibc=true;}if(f){ca=true;if(!e)ica=true;}if(ibc||(iab&&bc)||(ica&&ab
&&bc)){cout<<"Ron"<<endl;}else{cout<<"Hermione"<<endl;}}return 0;}

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
typedef pair<int, int> par;
typedef pair<double, double> pdd;
#define x first
#define y second

const int N = 100005;

int main() {
    LL a, b, c, d, e, f;
    cin >> a >> b >> c >> d >> e >> f;
    LL up = b * d * f;
    LL down = a * c * e;
    if (c == 0 && d) puts("Ron");
    else if (a == 0 && b && c && d) puts("Ron");
    else if (e == 0 && f && a && b && c && d) puts("Ron");
    else if (b == 0 || d == 0) puts("Hermione");
    else cout << (up > down  ? "Ron": "Hermione");
}

#include<bits/stdc++.h>
using namespace std;
int main(){
long double a, b, c, d, e, f;
cin>>a>>b>>c>>d>>e>>f;
if(c==0 && d>0){
    cout<<"Ron";
    return 0;
}
if(a==0 && b>0 && c>0 && d>0){
    cout<<"Ron";
    return 0;
}
long double hi=b*d;
hi/=c;
hi*=f;
hi/=e;
if(hi>a)
    cout<<"Ron";
else
    cout<<"Hermione";
return 0;
}

#include <cstdlib>
#include <cctype>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <fstream>
#include <numeric>
#include <iomanip>
#include <bitset>
#include <list>
#include <stdexcept>
#include <functional>
#include <utility>
#include <ctime>
using namespace std;

#define PB push_back
#define MP make_pair

#define REP(i,n) for(i=0;i<(n);++i)
#define FOR(i,l,h) for(i=(l);i<=(h);++i)
#define FORD(i,h,l) for(i=(h);i>=(l);--i)
#define FORIT(a,aa) for(a=aa.begin();a!=aa.end();++a)
#define split(str) {vs.clear();istringstream sss(str);while(sss>>(str))vs.push_back(str);}

typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<double> VD;
typedef long long ll;
typedef pair<int,int> PII;
int main()
{
	int a,b,c,d,e,f,i;
	double s;
	string p="Ron",q="Hermione";
	cin>>a>>b>>c>>d>>e>>f;
	if (d==0) cout<<q<<endl;
	else if (c==0||(a==0&&b>0)) cout<<p<<endl;
	else if (b*d*f>a*c*e) cout<<p<<endl;
	else cout<<q<<endl;
	return 0;
}

#include <bits/stdc++.h>
using namespace std;

int main(){
	double a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
	if(c==0&&d>0) cout<<"Ron";
	else if(d!=0&&a==0&&b!=0) cout<<"Ron";
	else if(d!=0&&a!=0&&b!=0&&c!=0&&e==0&&f!=0) cout<<"Ron";
	else if(a!=0&&c!=0&&e!=0){
		double x=1000.0;
		x=x*1.0/a*b;
		x=x*1.0/c*d;
		x=x*1.0/e*f;
		if(x>1000.0) cout<<"Ron";
		else cout<<"Hermione";
	}else cout<<"Hermione";
	return 0;
}

#include <iostream>
#include <vector>
#include <algorithm>

#define ll long long

using namespace std;

int main()
{
//  freopen("input.txt","r",stdin);
//  freopen("output.txt","w",stdout);
    ll a,b,c,d,e,f;
    cin >> a >> b >> c >> d >> e >> f;
    if (d==0) cout <<"Hermione\n";
    else if (c==0) cout << "Ron\n";
    else if (b==0) cout <<"Hermione\n";
    else if (a==0) cout << "Ron\n";
    else if (f==0) cout <<"Hermione\n";
    else if (e==0) cout << "Ron\n";
    else if (a*c*e>=b*d*f) cout <<"Hermione\n";
    else cout << "Ron\n";
    return 0;
}

#include <iostream>
#include <cstdio>
#include <string>

using namespace std;

int maxn = 100000,Min = -100000;
double map[4][4];

int main()
{
	double a,b,c,d,e,f;
	while(scanf("%lf %lf %lf %lf %lf %lf",&a,&b,&c,&d,&e,&f)!=EOF){
	memset(map,0,sizeof(map));
	if(!a&&b)map[1][2] = maxn; if(a&&!b||!a&&!b)map[1][2] = Min;
	if(!c&&d)map[2][3] = maxn; if(c&&!d||!c&&!d)map[2][3] = Min;
	if(!e&&f)map[3][1] = maxn; if(e&&!f||!e&&!f)map[3][1] = Min;
	if(map[2][3] == maxn)
	{
		printf("Ron\n");
		continue;
	}
	if(map[2][3] == Min)
	{
		printf("Hermione\n");
		continue;
	}
	if(map[1][2] == maxn)
	{
		printf("Ron\n");
		continue;
	}
	if(map[1][2] == Min)
	{
		printf("Hermione\n");
		continue;
	}
	if(map[3][1] == maxn)
	{
		printf("Ron\n");
		continue;
	}
	if(map[3][1] == Min)
	{
		printf("Hermione\n");
		continue;
	}
	map[1][2] = b/a; map[2][3] = d/c; map[3][1] = f/e;
	double L = map[1][2]*map[2][3]*map[3][1];
	//printf("%.2lf\n",L);
	if(L>1)
	{
		printf("Ron\n");
	}
	else
		printf("Hermione\n");
	}
	return 0;
}

#include <iostream>

using namespace std;

int main()
{
    int a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    cout<<((b * d * f > a * c * e || d && (!a && b || !c)) ? "Ron" : "Hermione");
    return 0;
}
///

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c,d,e,f;
    while((cin>>a>>b>>c>>d>>e>>f) && a>=0 &&b>=0 &&c>=0 &&d>=0 && e>=0 && f>=0 ){
        if(b*d*f>a*c*e)
            cout<<"Ron"<<endl;
        else if((a==0 && b*d>0) || (c==0 && d>0) )
                cout<<"Ron"<<endl;
        else
            cout<<"Hermione"<<endl;

    }

    return 0;
}

#include<stdio.h>
#include<string.h>
#include<vector>
#include<iostream>
#include<algorithm>
#include<stdlib.h>
using namespace std;
int main()
{
//    freopen("input.txt","r",stdin);
    double a,b,c,d,e,f,s,s1;
    while(scanf("%lf %lf %lf %lf %lf %lf",&a,&b,&c,&d,&e,&f)!=EOF)
    {
        if(d==0)
        printf("Hermione\n");
        else if(d!=0 && c==0)
        {
            printf("Ron\n");
        }
        else if(d!=0 && a==0)
        {
            if(b==0)
            printf("Hermione\n");
            else
            printf("Ron\n");
        }
        else if(b==0)
        printf("Hermione\n");
        else if(d!=0 && e==0)
        {
            if(f==0)
            {
                s=b / a * (d / c);//gold
                if(s>1)
                printf("Ron\n");
                else
                printf("Hermione\n");
            }
            else
            printf("Ron\n");
        }
        else if(f==0)
        {
            s=b / a * (d / c);//gold
            if(s>1)
            printf("Ron\n");
            else
            printf("Hermione\n");
        }
        else
        {
            s=b / a * (d / c);//gold
            s1=s*(f/e);
            if(s1>1)
            printf("Ron\n");
            else
            printf("Hermione\n");
        }
    }
    return 0;
}

#include <iostream>
#include <cstdio>
#include <cstring>
#include <stdlib.h>
using namespace std;

int main(){
 long a,b,c,d,e,f,ace,bdf,have,res=0;
while( cin>>a>>b>>c>>d>>e>>f){
ace=a*c*e;
bdf=b*d*f;
if(ace<bdf)cout<<"Ron"<<endl;
else{if(ace==0){
                if((!c&&d)||(!a&&b&&c&&d))cout<<"Ron"<<endl;
                else cout<<"Hermione"<<endl;
     }
     else cout<<"Hermione"<<endl;
     }
}
}

#pragma warning(disable : 4996)
#include <cstdio>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <cmath>
#include <cstring>
#include <algorithm>
#define F(i,a) for(int i=0;i<int((a).size());i++)
#define LL long long
#define LD long double
#define SQR(a) ((a)*(a))
using namespace std;

int main()
{
#ifndef ONLINE_JUDGE
	freopen("input.txt","r",stdin);
#endif
	const LD EPS=1e-7;
	int a,b,c,d,e,f;
	cin >> a >> b >> c >> d >> e >> f;
	if (c==0 && d!=0)
	{
		cout << "Ron" << endl;
		return 0;
	}
	if (a==0 && b!=0 && d!=0)
	{
		cout << "Ron" << endl;
		return 0;
	}
	if (e==0 && f!=0 && b!=0 && d!=0)
	{
		cout << "Ron" << endl;
		return 0;
	}
	if (b==0 || d==0 || f==0 || a==0 || c==0 || e==0)
	{
		cout << "Hermione" << endl;
		return 0;
	}
	LD k1=(LD)b/a,
	   k2=(LD)d/c,
	   k3=(LD)f/e;
	if (k1*k2*k3<1+EPS)
		cout << "Hermione";
	else
		cout << "Ron";
	cout << endl;
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f;
int main()
{
	cin>>a>>b>>c>>d>>e>>f;
	if(((a*c*e<b*d*f)||(c==0)||((a==0)&&(b*d>0)))&&d!=0) cout<<"Ron";
	else cout<<"Hermione";
}

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <vector>

using namespace std;

typedef long long ll;

ll a, b, c, d, e, f;
int main() {
    cin >> a >> b >> c >> d >> e >> f;
    if (b*d*f>a*c*e || ((c == 0 || (a==0 && b!=0)) && d > 0))
        cout << "Ron";
    else
        cout << "Hermione";
}

#pragma GCC optimize("O3")

#include <bits/stdc++.h>

using namespace std;

struct custom_hash {
    static uint64_t splitmix64(uint64_t x) {
        // http://xorshift.di.unimi.it/splitmix64.c
        x += 0x9e3779b97f4a7c15;
        x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
        x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
        return x ^ (x >> 31);
    }

    size_t operator()(uint64_t x) const {
        static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count();
        return splitmix64(x + FIXED_RANDOM);
    }
};

#define n_l '\n'
#define dbg(...) cout << "[" << #__VA_ARGS__ << "]: "; cout << to_string(__VA_ARGS__) << endl
template <typename T, size_t N> int SIZE(const T (&t)[N]){ return N; } template<typename T> int SIZE(const T &t){ return t.size(); } string to_string(const string s, int x1=0, int x2=1e9){ return '"' + ((x1 < s.size()) ? s.substr(x1, x2-x1+1) : "") + '"'; } string to_string(const char* s) { return to_string((string) s); } string to_string(const bool b) { return (b ? "true" : "false"); } string to_string(const char c){ return string({c}); } template<size_t N> string to_string(const bitset<N> &b, int x1=0, int x2=1e9){ string t = ""; for(int __iii__ = min(x1,SIZE(b)),  __jjj__ = min(x2, SIZE(b)-1); __iii__ <= __jjj__; ++__iii__){ t += b[__iii__] + '0'; } return '"' + t + '"'; } template <typename A, typename... C> string to_string(const A (&v), int x1=0, int x2=1e9, C... coords); int l_v_l_v_l = 0, t_a_b_s = 0; template <typename A, typename B> string to_string(const pair<A, B> &p) { l_v_l_v_l++; string res = "(" + to_string(p.first) + ", " + to_string(p.second) + ")"; l_v_l_v_l--; return res; } template <typename A, typename... C> string to_string(const A (&v), int x1, int x2, C... coords) { int rnk = rank<A>::value; string tab(t_a_b_s, ' '); string res = ""; bool first = true; if(l_v_l_v_l == 0) res += n_l; res += tab + "["; x1 = min(x1, SIZE(v)), x2 = min(x2, SIZE(v)); auto l = begin(v); advance(l, x1); auto r = l; advance(r, (x2-x1) + (x2 < SIZE(v))); for (auto e = l; e != r; e = next(e)) { if (!first) { res += ", "; } first = false; l_v_l_v_l++; if(e != l){ if(rnk > 1) { res += n_l; t_a_b_s = l_v_l_v_l; }; } else{ t_a_b_s = 0; } res += to_string(*e, coords...); l_v_l_v_l--; } res += "]"; if(l_v_l_v_l == 0) res += n_l; return res; } void dbgm(){;} template<typename Heads, typename... Tails> void dbgm(Heads H, Tails... T){ cout << to_string(H) << " | "; dbgm(T...); }
#define dbgm(...) cout << "[" << #__VA_ARGS__ << "]: "; dbgm(__VA_ARGS__); cout << endl

#define REP(i,b) for(int i=0;i<(b);i++)
#define PER(i,a,b) for(int i=(a);i>(b);i++)
#define SZ(a) int((a).size())
#define ALL(a) (a).begin(), (a).end()
#define MS(s, n) memset(s, n, sizeof(s))
#define IN(t, x) (t.find(x) != t.end())
#define PB push_back
#define MP make_pair
#define VI vector<int>

typedef vector<pair<int, int>> VPII;
typedef pair<int, int> PII;
typedef long long ll;
typedef unsigned long long ull;
const int MOD = (int) 1e9 + 7;
string ascii_lowercase = "abcdefghijklmnopqrstuvwxyz";
string ascii_uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

long long inv(long long a, long long b) {
    return 1 < a ? b - inv(b % a, a) * b / a : 1;
}

const ll INF = 1e6;

unordered_map<int, int, custom_hash> mp;

// unordered_map<int, unordered_map<int, int, custom_hash>, custom_hash> g;

ll gcd(ll a, ll b, ll &x, ll &y) {
    if (a == 0) {
        x = 0;
        y = 1;
        return b;
    }
    ll x1, y1;
    ll d = gcd(b % a, a, x1, y1);
    x = y1 - (b / a) * x1;
    y = x1;
    return d;
}

ll n, m;
int arr[1005];
int a, b, c, d, e, f;

int main() {
    cin >> a >> b >> c >> d >> e >> f;
    if (d == 0) {
        puts("Hermione\n");
        return 0;
    } else if (c == 0) {
        puts("Ron\n");
        return 0;
    } else if (b == 0) {
        puts("Hermione\n");
        return 0;
    } else if (a == 0) {
        puts("Ron\n");
        return 0;
    } else if (f == 0) {
        puts("Hermione\n");
        return 0;
    } else if (e == 0) {
        puts("Ron\n");
        return 0;
    }
    if (b * d * f <= a * c * e) {
        puts("Hermione\n");
        return 0;
    } else {
        puts("Ron\n");
        return 0;
    }

    return 0;
}

# include <cstdio>
int main()
{
    int a, b, c, d, e, f;
    scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &e, &f);
    bool ans;
    if (d == 0)
        ans = false;
    else if (c == 0)
        ans = true;
    else if (b == 0)
        ans = false;
    else if (a == 0)
        ans = true;
    else if (f == 0)
        ans = false;
    else if (e == 0)
        ans = true;
    else
        ans = a * c * e < b * d * f;
    if (ans)
        printf("Ron\n");
    else
        printf("Hermione\n");
}

#include<iostream>
using namespace std;
int main()
{
    int a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    if(a*c*e<b*d*f||!c&&d||!a&&b&&d)
    {
        cout<<"Ron"<<endl;
        return 0;
    }
    else
    {
        cout<<"Hermione"<<endl;
        return 0;
    }
    return 0;
}

#include <bits/stdc++.h>
using namespace std;

#define fr(i,n) _back
#define pb	push_back
#define eb	emplace_back
#define mk	make_pair
#define fi	first
#define se	second
#define endl	'\n'

typedef long long ll;
typedef pair<int,int> ii;
typedef vector<ii> vii;
typedef pair<ll,ll> frac;

const int INF = 0x3f3f3f3f;
const double PI = acos(-1.0);

frac operator * (const frac &a, const frac &b) {
    frac ans = mk(1,1);

    ans.fi = a.fi * b.fi;
    ans.se = a.se * b.se;

    ll gcd = __gcd(ans.fi,ans.se);

    ans.fi /= gcd;
    ans.se /= gcd;
    return ans;
}

int main() {
    ios_base::sync_with_stdio(false);
    ll v[6];
    ll tmp[6];
    for(int i = 0; i < 6; i++) cin >> v[i];
    for(int i = 0; i < 6; i++) tmp[i] = v[(i+4)%6];

    frac ans = mk(1,1);
    bool f = 0;
    bool f2 = 0;

    for(int i = 0; i < 6; i += 2) {
        frac tmp = mk(v[i+1],v[i]);

        if(v[i+1] == 0) {
            f = 1;
            continue;
        }

        ll gcd = __gcd(v[i+1],v[i]);

        tmp.fi /= gcd;
        tmp.se /= gcd;
        ans = (ans * tmp);
    }

    for(int i = 0; i < 6; i += 2) {
        bool ok = (tmp[i] == 0);
        for(int j = i+1; j < 6; j += 2) ok &= (tmp[j] != 0);
        if(ok) f2 = 1;
    }

    if(f2) cout << "Ron" << endl;
    else if(f) cout << "Hermione" << endl;
    else cout << (ans.fi > ans.se? "Ron" : "Hermione") << endl;

    return 0;
}

#include<cstdio>
int a,b,c,d,e,f;
int main(){
    scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
    if(d&&(a*c*e<b*d*f||(!a&&b)||(!c)))puts("Ron");
    else puts("Hermione");
}

#include <iostream>
using namespace std;
int main ( ) {
        int a, b, c, d, e, f;
        cin >> a >> b >> c >> d >> e >> f;
        if ( a * c * e < f * b * d || ( !c && d ) || ( !a && b && c && d ) ) cout << "Ron\n";
        else cout << "Hermione\n";
}

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define sc(x)  scanf("%d",&x)
#define sc2(x,y)  scanf("%d%d",&x,&y)
#define scl(x) scanf("%lld",&x)
#define F first
#define S second
#define pb push_back
#define pi 3.1415926535897932384
//ios::sync_with_stdio(0);
//  cin.tie(0);
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
ll lcm(ll a,ll b)
{
    return (a*b)/__gcd(a,b);
}
int main()
{
    ll a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    if (!c && d) return cout<<"Ron"<<endl,0;
    if (!d || !(a+b+c+d+e+f) || !b) return cout<<"Hermione"<<endl,0;
    if ((!a&&b) || (!e&&f)) return cout<<"Ron"<<endl,0;
    if (!b || !f) return cout<<"Hermione"<<endl,0;
    ll x=1e5;
    ll y=x;
    y=(y/a)*b;
    y=(y/c)*d;
    y=(y/e)*f;
    //cout<<x<<" "<<y<<endl;
    cout<<(y>x?"Ron":"Hermione")<<endl;
    return 0;
}

#include<cstdio>
#include<cmath>
#define Re register int
const int N=1e7;
double a,b,c,d,e,f;
int main(){
    // freopen("123.txt","r",stdin);
    scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f);
    puts(d&&((!c)||(!a&&b)||(a&&c&&b*d/a/c>e/f))?"Ron":"Hermione");
}

#include <bits/stdc++.h>
using namespace std;
long long a,b,c,d,e,f;
int main()
{
	cin>>a>>b>>c>>d>>e>>f;
	if(((a*c*e<b*d*f)||(c==0&&d!=0)||(a==0&&b!=0&&d!=0))&&d!=0)
		cout<<"Ron";
	else
		cout<<"Hermione";
	return 0;
}

#include<iostream>
using namespace std;

int main(){
	int a,b,c,d,e,f;
	long long x,y;
	cin>>a>>b>>c>>d>>e>>f;
	if((c==0&&d!=0)||(a==0&&b!=0&&d!=0)||(a*c*e<b*d*f))cout<<"Ron";
	else cout<<"Hermione";
}

#include <bits/stdc++.h>
using namespace std;
long long i,j,k,l,n,m,x,y,s,ans;
long long a,b,c,d,e,f;
int main()
{
	scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
	x=a*c*e; y=b*d*f;
	if((y>x || (a==0 && b!=0 && d!=0) || (c==0 && d!=0)) && d!=0) printf("Ron");
	else printf("Hermione");
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f;
int main()
{
	ios::sync_with_stdio(false);
	cout.tie(0);cin.tie(0);
	cin>>a>>b>>c>>d>>e>>f;
	if(d==0) cout<<"Hermione"<<endl;
	else if(a*c*e<b*d*f) cout<<"Ron"<<endl;
	else if((a==0&&b!=0)||c==0) cout<<"Ron"<<endl;
	else cout<<"Hermione"<<endl;
}

#include<iostream>
using namespace std;
int main()
{
    int a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    if(((b*d*f>a*c*e)||(c==0&&d!=0)||(a==0&&b!=0&&d!=0))&&d!=0) cout<<"Ron";
    else cout<<"Hermione";
    return 0;
}

#include<bits/stdc++.h>
using namespace std;

#define REP( i , n ) for( int i = 0 ; i < n ; ++i )
#define clr( t , val ) memset( t , val , sizeof( t ) )

#define pb push_back

#define all( v ) v.begin() , v.end()
#define SZ( v ) ((int)v.size())

#define mp make_pair
#define fi first
#define se second

typedef long long ll;
typedef long double ld;
ll LCM( ll a , ll b ){
    return a * (b / __gcd( a , b ));
}
int main(){
    int n = 6;
    ll a[ 6 ];
    while( cin >> a[ 0 ] ){
        REP( i , n ){
            if( !i ) continue;
            cin >> a[ i ];
        }

        if( !a[ 2 ] && a[ 3 ] ){
            cout << "Ron\n";
            continue;
        }
        if( !a[ 3 ] ){
            cout << "Hermione\n";
            continue;
        }
        if( !a[ 0 ] && a[ 1 ] ){
            cout << "Ron\n";
            continue;
        }
        if( !a[ 1 ] ){
            cout << "Hermione\n";
            continue;
        }
        if( !a[ 4 ] && a[ 5 ] ){
            cout << "Ron\n";
            continue;
        }
        if( !a[ 5 ] ){
            cout << "Hermione\n";
            continue;
        }

        ll lcm = 1;
        REP( i , n ) lcm = LCM( lcm , a[ i ] );

        ld x = lcm;
        for( int i = 0 ; i < n ; i += 2 ){
            x /= (ld)a[ i ];
            x *= (ld)a[ i + 1 ];
        }
        if( x > (ld)lcm ){
            cout << "Ron\n";
            continue;
        }
        cout << "Hermione\n";
    }
}

#include <iostream>
using namespace std;
int main()
{
	int q,w,e,r,t,y;
	cin>>q>>w>>e>>r>>t>>y;
	if(q*e*t<w*r*y||e==0&&r>0||q==0&&w>0&&r>0)
	{
		cout<<"Ron"<<endl;
        return 0;
	}
	else
	{
		cout<<"Hermione"<<endl;
        return 0;
	}
}

#include<iostream>
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<string>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<sstream>
using namespace std;
#define FOR(i,n) for(i=0;i<n;i++)
#define FOR1(i,n) for(i=1;i<=n;i++)
#define FORab(i,a,b) for(i=a;i<=b;i++)
int main()
{
double a,b,c,d,e,f,t1;
    cin>>a>>b>>c>>d>>e>>f;
  /*  long long initial_sand=a;
    long long initial_lead=b,initial_gold,next_sand;
    if(__gcd(initial_lead,c)==0)
    {
        initial_gold=1000000000;
    }
    else
    {
        initial_gold=( ((initial_lead*c)/__gcd(initial_lead,c))*d)/c;
        initial_sand*=(initial_lead*c)/__gcd(initial_lead,c);
    }
    cout<<initial_sand<<" "<<initial_lead<<" "<<initial_gold<<" "<<
    if(__gcd(initial_gold,e)==0)
    {
        next_sand=10000000000000LL;
    }
    else
    {
        next_sand=( ((initial_gold*e)/__gcd(initial_gold,e))*f)/e;
        initial_sand*=((initial_gold*e)/__gcd(initial_gold,e));
    }
    if(next_sand>initial_sand)cout<<"Ron"<<endl;
    else cout<<"Hermione"<<endl;
*/
    if(d==0)cout<<"Hermione"<<endl;
    else if(c==0)cout<<"Ron"<<endl;
    else if(b==0)cout<<"Hermione"<<endl;

    else if(a==0)cout<<"Ron"<<endl;
    else if(f==0)cout<<"Hermione"<<endl;
    else if(e==0)cout<<"Ron"<<endl;
    else if((b*d*f)>(c*e*a))cout<<"Ron"<<endl;
    else cout<<"Hermione"<<endl;
    return 0;
}

#include <cstdio>
#include <cstring>
#include <cmath>

#include <iostream>
#include <iomanip>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <algorithm>
#include <sstream>

using namespace std;

typedef long long ll;
typedef pair <int, int> pii;
typedef vector <int> vi;

#define pb push_back
#define mp make_pair
#define sqr(x) ((x)*(x))

int main()
{
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif

	ll a, b, c, d, e, f;
	cin >> a >> b >> c >> d >> e >> f;

	if (a*c*e < d*b*f || (e == 0 && f > 0 && b > 0 && d > 0) || (a == 0 && b > 0 && d > 0) || (c == 0 && d > 0))
		cout << "Ron";
	else
		cout << "Hermione";

	return 0;
}

// Codeforces Beta Round #60 A. Harry Potter and Three Spells

#include <iostream>
#include <string>

using namespace std;

int main(){
	int a, b, c, d, e, f;
	while(cin >> a >> b >> c >> d >> e >> f)
		cout << (b*d*f > a*c*e || (c==0 && d>0) || (a==0 && b>0 && c>0 && d>0) ? "Ron" : "Hermione") << endl;
}

#include <iostream>
using namespace std;
int main()
{
	//freopen("input.txt","r",stdin);
    int a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
    if( a*c*e < b*d*f  || ( !c&&d ) || ( !a&&b&&d ) )
		cout<<"Ron";
    else
		cout<<"Hermione";
}

#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#define rep(i, a, b) for(int i=(a); i<(b); i++)
#define repi(i, a, b) for(int i=(a); i>(b); i--)
#define db(x) (cerr << #x << ": " << (x) << '\n')
#define sync ios_base::sync_with_stdio(false), cin.tie(NULL)
#define cps CLOCKS_PER_SEC
#define tests(t) int t; cin >> t; while(t--)
#define iceil(n, x) (((n) + (x) - 1) / (x))
#define ll long long
#define gcd __gcd
#define eb emplace_back
#define pb push_back
#define pf push_front
#define pob pop_back
#define pof pop_front
#define sz size()
#define all(v) (v).begin(), (v).end()
#define uni(v) sort(all(v)), (v).erase(unique(all(v)), (v).end())
#define pii pair<int, int>
#define vi vector<int>
#define vpii vector<pii>
#define vvi vector<vi>
#define fi first
#define se second
#define mt make_tuple
#define pqueue priority_queue
#define bitcount(x) __builtin_popcount(x)
#define PI acos(-1.0)
#define EPS 1e-9
#define mod 1000000007
using namespace std;

#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1>
void __f(const char* name, Arg1&& arg1){
    cerr << name << " : " << arg1 << '\n';
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args){
    const char* comma = strchr(names + 1, ','); cerr.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...);
}

template<typename T1, typename T2>
ostream& operator << (ostream& os, const pair<T1, T2>& p) { return os << '(' << p.fi << ", " << p.se << ')'; }

template<typename T>
void printv(const T& v) { for(auto i : v) cerr << i << ' '; cerr << '\n'; }

template<typename T>
using minpq = priority_queue<T, vector<T>, greater<T>>;

template<typename T>
using maxpq = priority_queue<T>;

//All indexing is 0-based
using namespace __gnu_pbds;
template<class key, class cmp = std::less<key>>
using ordered_set = tree<key, null_type, cmp, rb_tree_tag, tree_order_statistics_node_update>;
//methods: find_by_order(k); & order_of_key(k);
//To make it an ordered_multiset, use pairs of (value, time_of_insertion)
//to distinguish values which are similar

template<class key, class value, class cmp = std::less<key>>
using ordered_map = tree<key, value, cmp, rb_tree_tag, tree_order_statistics_node_update>;

//Returns no. of values x for which ceil(n / x) == y (y must be > 1).
inline ll CC(ll n, ll y) { return iceil(n, y-1) - iceil(n, y); }

//Returns no. of values x for which floor(n / x) == y
inline ll FF(ll n, ll y) { return n / y - n / (y+1); }

//a and b are assumed to be taken modulo p
inline int add(int a, int b, int p = mod){ int c = a + b; if(c >= p) c -= p; return c; }
inline int sub(int a, int b, int p = mod){ int c = a - b; if(c < 0) c += p; return c; }
inline int mul(int a, int b, int p = mod){ return (a * 1ll * b) % p; }

#define N 100005
#define int ll
// #define trace(...) 42

main()
{
    #ifndef ONLINE_JUDGE
        freopen("/home/tarun/Desktop/input.txt", "r", stdin);
     // freopen("/home/tarun/Desktop/output.txt", "w", stdout);
    #endif
    sync;
    clock_t clk = clock();
    cerr << "I will return...\n";

    int a, b, c, d, e, f;
    cin >> a >> b >> c >> d >> e >> f;

    bool ok;
    if(d == 0) ok = 0;          //Cannot produce gold
    else if(c == 0) ok = 1;     //Can produce infinte gold
    else if(b == 0) ok = 0;     //Cannot produce lead
    else if(a == 0) ok = 1;     //Can produce infinte lead
    else if(f == 0) ok = 0;     //Cannot convert gold back to sand
    else if(e == 0) ok = 1;     //Can produce infinte sand
    else if(b * d * f > a * c * e) ok = 1;  //A unit of sand produces more than a unit of sand
    else ok = 0;                //A unit of sand produces <= A unit of sand

    cout << (ok ? "Ron\n" : "Hermione\n");

    cerr << "...don't you ever hang your head.\n";
    cerr << "Time (in ms): " << (double)(clock() - clk) * 1000.0 / cps << '\n';
}

//Compile using:
//g++ -o filename.exe --std=c++11 filename.cpp
//Use -D CP for defining a macro CP in the local environment

#include<bits/stdc++.h>
using namespace std;

int main()
{
    long long int a,b,c,d,e,f;
    while(scanf("%I64d %I64d %I64d %I64d %I64d %I64d",&a,&b,&c,&d,&e,&f)==6)
    {
        if(c==0&&d>0)
         cout<<"Ron"<<endl;

//        else if(b==0&&d==0&&f==0)
//            cout<<"Hermione"<<endl;
//        else if(a==0||c==0||e==0)
//            cout<<"Ron"<<endl;
            else if(a==0&&b>0&&d>0)
                 cout<<"Ron"<<endl;
        else
        {
            if(a*c*e>=b*d*f)
                cout<<"Hermione"<<endl;
            else cout<<"Ron"<<endl;
        }
    }

    return 0;
}

#include<stdio.h>
#include<iostream>

using namespace std;
int main()
	{unsigned int a,b,c,d,e,f;

		cin>>a>>b>>c>>d>>e>>f;
			if(d==0)
       cout<<"Hermione"<<endl;
    else
        if(c==0)
           cout<<"Ron"<<endl;
        else
            if(b==0)
                cout<<"Hermione"<<endl;
            else
                if(a==0)
                    cout<<"Ron"<<endl;
                else
                    if(f==0)
                        cout<<"Hermione"<<endl;
                    else
                        if(e==0)
                           cout<<"Ron"<<endl;
                        else
                            if(a*c*e<b*d*f)
                                cout<<"Ron"<<endl;
                            else
                                cout<<"Hermione"<<endl;

		return 0;
	}

#include <iostream>
using namespace std;

int main()
{
	double a, b, c, d, e, f;
	cin>> a >> b >> c >> d >> e >> f;

	if(d == 0)
	{
		cout<< "Hermione\n";
		return 0;
	}
	if(c == 0 || (a == 0 && b != 0))
	{
		cout<< "Ron\n";
		return 0;
	}

	double x = b * d * f / c / e;
	if(x > a)
		cout<< "Ron\n";
	else
		cout<< "Hermione\n";

}

#include "bits/stdc++.h"

using namespace std;
using LL = long long;

constexpr int N = 1e5 + 5;

int main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);

	int a, b, c, d, e, f;
	cin >> a >> b >> c >> d >> e >> f;
	if (c == 0 and d) return cout << "Ron\n", 0;
	if (a == 0 and b and c && d) return cout << "Ron\n", 0;
	if (e == 0 && f && a && b && c && d) return cout << "Ron\n", 0;
	int up = b * d * f;
	int down = a * c * e;
	if (up > down) cout << "Ron\n";
	else cout << "Hermione\n";
}

using namespace std;
#include<algorithm>
#include<iostream>
#include<sstream>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<bitset>

#include<climits>
#include<cstring>
#include<cstdio>
#include<cmath>

template <class T> string toStr(const T &x)
{ stringstream s; s << x; return s.str(); }

template <class T> int toInt(const T &x)
{ stringstream s; s << x; int r; s >> r; return r; }

#define MPI acos(-1)
#define fr(i,j,n) for(int i=j;i<n;++i)
#define FR(i,n) fr(i,0,n)
#define foreach(x,v) for(typeof (v).begin() x = (v).begin(); x!= (v).end(); x++)
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define RI(x) scanf("%d",&x)
#define DRI(x) int x;RI(x)
#define RII(x,y) scanf("%d%d",&x,&y)
#define DRII(x,y) int x,y;RII(x,y)
#define PI(x) printf("%d ",x)
#define PIS(x) printf("%d\n",x)
#define D(x) cout<< #x " = "<<(x)<<endl
#define Dd(x) printf("#x = %lf\n", x)
#define Dbg if(1)
#define PB push_back
#define MK make_pair
#define F first
#define S second

typedef long long ll;
typedef vector<ll> vl;
typedef vector<int> vi;
typedef vector<string> vs;
typedef vector<vs> vss;
typedef vector<int,int> vii;
typedef vector<vi> vvi;
typedef pair <int,int> pii;
typedef pair <double,double> pdd;
typedef map<string,int> msi;
typedef long long int lli;

bool mycmp (pair<string,int> a,pair<string,int> b) { return (a.second<b.second); }

vector< pair<string,int> >  table;

int main()
{
    double a,b,c,d,e,f;
    cin >> a >> b >> c >> d >> e >> f;
    double res = (b/a)*(d/c)*(f/e);
    if( (res > 1.0) || (c == 0 && c < d) || (a == 0 && b > a && d!= 0))
       cout<<"Ron"<<endl;
    else
       cout<<"Hermione"<<endl;

    return 0;
}

#include <iostream>

using namespace std;

int main()
{
    int a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    cout<<((b * d * f > a * c * e || d && (!a && b || !c)) ? "Ron" : "Hermione");
    return 0;
}
/////

#include<iostream>
using namespace std;
int main()
{
    int a,b,c,d,e,f;
    cin >> a >> b >> c >> d >> e >> f;
    if((b*d*f > a*c*e) || (!a && b*d) || (!c && d)) cout << "Ron" << endl;
    else cout << "Hermione" << endl;
    return 0;
}

#include <stdio.h>
#include <bits/stdc++.h>

using namespace std;

using uint=unsigned;
using lint=long long;
using ulint=unsigned long long;
using ldouble=long double;
using point=complex<double>;
using doublex=complex<ldouble>;

const double E=1e-9, pi=2*acos(0);
const ldouble PI=2*acosl(0);

bool solve(int testNumber) {
	int num=1, den=1;
	vector<int> A(3), B(3);
	for (int i=0; i<3; i++) {
		int x, y;
		if (scanf("%d %d", &B[i], &A[i])==EOF) return false;
		num*=A[i];
		den*=B[i];
	}
	if ((!B[1] and A[1]) or (!B[0] and A[0] and A[1]) or (!B[2] and A[2] and A[0] and A[1])) num=den+1;
	printf("%s\n", num>den?"Ron":"Hermione");
	return true;
}

void init() {
	//freopen("input.in", "r", stdin);
    //freopen("output.out", "w", stdout);
}

int main() {
	init();
	for (int i=1; solve(i); i++);
	return 0;
}

#include <bits/stdc++.h>

using namespace std;

int main() {

    int a, b, c, d, e, f;
    cin >> a >> b >> c >> d >> e >> f;

    int ron = -1;
    int val[] = {e, f, a, b, c, d};
    for (int i = 5; ron == -1 && i >= 0; i--)
        if (val[i] == 0)
            ron = (i & 1) == 0;
    if (ron == -1)
        ron = b * d * f > a * c * e;
    printf("%s\n", ron ? "Ron" : "Hermione");

}

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define db double
#define inf 1e9+8
inline int read()
{
	int re=0,f=1;char ch=getchar();
	while(!isdigit(ch)){if(ch=='-') {f=-1;}ch=getchar();}
	while(isdigit(ch)){re=(re<<3)+(re<<1)+ch-'0';ch=getchar();}
	return re*f;
}
const int ff=1e6+1;
int a,b,c,d,e,f,t;
void init()
{
	a=read();b=read();
	c=read();d=read();
	e=read();f=read();
	if(d==0)
	{
		puts("Hermione");
		return;
	}
	if(c==0)
	{
		puts("Ron");
		return;
	}
	if(b==0)
	{
		puts("Hermione");
		return;
	}
	if(a==0)
	{
		puts("Ron");
		return;
	}
	if(f==0)
	{
		puts("Hermione");
		return;
	}
	if(e==0)
	{
		puts("Ron");
		return;
	}
	db ks=(db(b*d*f))/(db(c*e));
	if(ks-db(a)>0.0001) puts("Ron");
	else puts("Hermione");
}
signed main()
{
//	freopen("rich.in","r",stdin);
//	freopen("rich.out","w",stdout);
//	t=read();
//	while(t--)
	init();
}

#include<bits/stdc++.h>
using namespace std;

int main()
{
	double a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
	double last=a;

	if(a==0)
	{
		a=0.000001;
	}
	if(c==0)
	{
		c=0.000001;
	}
	if(e==0)
	{
		e=0.000001;
	}
	if(d/c>100000)
	{
		cout<<"Ron";
		return 0;
	}
	else if(b*d/c/a>100000)
	{
		cout<<"Ron";
		return 0;
	}
	last=b*d*f/c/e;
	if(last>a)
	{
		cout<<"Ron";
	}
	else
	{
		cout<<"Hermione";
	}
	return 0;
}

#include <bits/stdc++.h>

using namespace std;
double a, b, c, d, e, f;
int main()
{
    scanf("%lf%lf%lf%lf%lf%lf",&a, &b, &c, &d, &e, &f);

    if(c==0&&d!=0||a==0&&b!=0&&c!=0&&d!=0){
        cout<<"Ron";
        return 0 ;
    }

    if(d==0||b==0&&c!=0||f==0&&a!=0)
    {
        cout<<"Hermione";
    }else
    {
        b/a*d/c*f/e>1?cout<<"Ron":cout<<"Hermione";
    }

    return 0;
}

#include<iostream>
#include<cstdio>
#include<vector>
#include<string>
#include<algorithm>
#include<set>
#include<map>
#include<cmath>
#include<cstring>
#define FOR(i,j,k) for(i = j;i < k;i++)
#define RFOR(i,j,k) for(i = k-1;i >= j;i--)
#define LL long long
#define GET(x) scanf("%d",&x)
#define OUT(x) printf("%d\n",x)
#define SET(x) memset(x,0,sizeof(x))
using namespace std;
bool st = false;
double con(double x,double y,double in)
 { if(x == 0 && y == 0)
     return 0;
   if(x == 0 && y != 0)
     {  st = true;
        return 10000000000LL;
     }
   return (y*in)/x;
 }
int main()
 { //Dec
   double a,b,c,d,e,f;
   cin>>a>>b>>c>>d>>e>>f;
   string hr = "Hermione\n";
   string rn = "Ron\n";
   if(d == 0)
     { cout<<hr;
       return 0;
     }
   if(c == 0)
     { cout<<rn;
       return 0;
     }
   if(b == 0)
     { cout<<hr;
       return 0;
     }
   if(a == 0)
     { cout<<rn;
       return 0;
     }
   if(f == 0)
     { cout<<hr;
       return 0;
     }
   if(e == 0)
     { cout<<rn;
       return 0;
     }
   if(a*c*e < b*d*f)
     cout<<rn;
   else
     cout<<hr;
   return 0;
 }

#include <cstdio>	// EOF, NULL
#include <cstdlib>	// NULL, rand, abs
#include <cstring>
#include <cmath>	// fabs
#include <cctype>
#include <cassert>
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>	// binary_search, set operation, heap, min/max, permutation
#include <map>
#include <vector>
#include <list>
#include <queue>	// priority_queue
#include <iomanip>	// setprecision
#include <functional>	// greater

using namespace std;

typedef long long int int64_t;
typedef long long unsigned int uint64_t;

int main(int argc, char *argv[])
{
	// none, some, inf
	bool loop = true;
	enum material{none,some,inf} state = some;
	double a,b,c,d,e,f;
	scanf("%lf%lf%lf%lf%lf%lf", &a,&b,&c,&d,&e,&f);
	if(a == 0.0 && b != 0.0)
		state = inf;
	else if(b == 0.0)
		state = none, loop = false;

	if(c == 0.0 && d != 0.0)
		state = inf;
	else if(d == 0.0)
		state = none, loop = false;

	if(state == inf){
		puts("Ron");
		return 0;
	}else if(state == none){
		puts("Hermione");
		return 0;
	}

	if(e == 0.0 && f != 0.0)
		state = inf;
	else if(f == 0.0)
		state = none, loop = false;

	if(state == none)
		puts("Hermione");
	else if(state == inf && loop)
		puts("Ron");
	else
		puts(loop && (b/a*d/c*f/e>1.0)?"Ron":"Hermione");
	return 0;
}

/*input
100 1 100 1 0 1

*/
#include <bits/stdc++.h>
#pragma GCC optimize("unroll-loops,no-stack-protector")
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<ld,ld> pdd;
#define IOS ios_base::sync_with_stdio(0); cin.tie(0)
#define ALL(a) a.begin(),a.end()
#define SZ(a) ((int)a.size())
#define F first
#define S second
#define REP(i,n) for(int i=0;i<((int)n);i++)
#define eb emplace_back
#define pb push_back
#define MP(a,b) make_pair(a,b)
#define SORT_UNIQUE(c) (sort(c.begin(),c.end()), c.resize(distance(c.begin(),unique(c.begin(),c.end()))))
#define GET_POS(c,x) (lower_bound(c.begin(),c.end(),x)-c.begin())
#define EL cout<<'\n'
template<typename T1,typename T2>
ostream& operator<<(ostream& out,pair<T1,T2> P){
	out<<'('<<P.F<<','<<P.S<<')';
	return out;
}
template<typename T>
ostream& operator<<(ostream& out,vector<T> V){
	REP(i,SZ(V)) out<<V[i]<<((i!=SZ(V)-1)?" ":"");
	return out;
}
#define version 20190814
//}}}
const ll maxn=300005;
const ll maxlg=20;
const ll INF64=1e18;
const int INF=0x3f3f3f3f;
const ll MOD=ll(1e9+7);
const ld PI=acos(-1);
const ld eps=1e-9;
//const ll p=880301;
//const ll P=31;

ll mypow(ll a,ll b){
	ll res=1LL;
	while(b){
		if(b&1) res=res*a%MOD;
		a=a*a%MOD;
		b>>=1;
	}
	return res;
}

void POS(){
	cout<<"Ron\n";
	exit(0);
}
void IMPOS(){
	cout<<"Hermione\n";
	exit(0);
}

int main(){
	IOS;
	ll a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
	if(b==0){
		if(c==0&&d>0) POS();
		else IMPOS();
	}
	if(d==0){
		IMPOS();
	}
	if(f==0){
		if(c==0&&d>0) POS();
		else if(a==0&&b>0) POS();
		else IMPOS();
	}
	if(a==0||c==0||e==0){
		POS();
	}
	if(a*c*e<b*d*f) POS();
	else IMPOS();
	return 0;
}

#ifdef _MSC_VER
#pragma warning(disable:4996)  // deprecations
#endif  //  #ifdef _MSC_VER
#include <functional>
#include <algorithm>
#include <iostream>
#include <numeric>
#include <utility>
#include <sstream>
#include <complex>
#include <limits>
#include <string>
#include <bitset>
#include <vector>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <stdlib.h>
#include <assert.h>
#include <stdarg.h>
#include <string.h>
#include <ctype.h>
#include <stdio.h>
#include <float.h>
#include <math.h>
#include <time.h>
#if defined(_MSC_VER) && !defined(_STLP_LONG_LONG)
namespace std { long long abs(long long x) { return x < 0 ? -x : x; } }
#endif
using namespace std;

////////////////////// Debug Utilities ///////////////////////
void dprintf(char* format, ...) {
  fprintf(stderr, "DEBUG: ");
  va_list argp; va_start(argp, format);
  vfprintf(stderr, format, argp); va_end(argp);
  fprintf(stderr, "\n");
}
struct Exception {
  const char* message;
  const int line;
  Exception(const char* m, int l) : message(m), line(l) {}
};
#define THROW(M) throw Exception(M, __LINE__)
////////////////////// Debug Utilities ///////////////////////

////////////////////// Reading Utilities ///////////////////////
static char stringReader[2097152];
static inline bool ReadLine() {
  char* ptr = fgets(stringReader, sizeof(stringReader), stdin);
  if ( ptr == 0 ) return false;
  int N = strlen(stringReader);
  if ( stringReader[N - 1] == '\n' ) stringReader[N - 1] = 0;
  return true;
}
////////////////////// Reading Utilities ///////////////////////

///////////////////////// Basic Utilities //////////////////////////
#define SIZE(N, V) int N = static_cast<int>((V).size())
#define GSIZE(N, V) (N) = static_cast<int>((V).size())
#define ALL(V) (V).begin(), (V).end()
#define UNIQUE(C) {sort(ALL(C)); C.resize(unique(ALL(C)) - C.begin());}
#define CAST(X, Y) {stringstream ss; ss << (X); ss >> (Y);}
typedef long long i64;
const i64 ooLL = 0x3f3f3f3f3f3f3f3fLL;
const int oo = 0x3f3f3f3f;
const double eps = 1e-9;
///////////////////////// Basic Utilities //////////////////////////

////////////////////////// Solution ///////////////////////////
int main() {
try {
#ifdef ZYX_MACHINE
  freopen("xxx.in", "rt", stdin);
#endif // #ifdef ZYX_MACHINE

  int v[6];
  while ( scanf("%d", v) == 1 ) {
    for ( int i = 1; i < 6; ++i ) scanf("%d", v + i);
    if ( v[3] == 0 ) printf("Hermione\n");
    else if ( v[2] == 0 ) printf("Ron\n");
    else if ( v[1] == 0 ) printf("Hermione\n");
    else if ( v[0] == 0 ) printf("Ron\n");
    else printf("%s\n", v[0] * v[2] * v[4] < v[1] * v[3] * v[5] ? "Ron" : "Hermione");
  }

  return 0;
} catch ( const Exception& exception ) {
  fprintf(stderr, "******************************\n");
  fprintf(stderr, "ERROR.%d: %s\n", exception.line, exception.message);
  fprintf(stderr, "******************************\n");
  throw exception;
}
}
////////////////////////// Solution ///////////////////////////
// BEGIN CUT HERE
//Znippet tag
// END CUT HERE

#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f;
int main()
{
	scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
	puts(b*d*f>a*c*e||(c==0&&d)||(a==0&&b&&d)?"Ron":"Hermione");
	return 0;
}

// Nihesh Anderson - knandy

#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace __gnu_pbds;
using namespace std;

typedef long long ll;
typedef tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update> ordered_set; // find_by_order, order_of_key
ll MOD=1000000007;

#ifndef ONLINE_JUDGE
#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1> void __f(const char *name, Arg1 &&arg1) {
    cerr << name << " : " << arg1 << std::endl;
}
template <typename Arg1, typename... Args>
void __f(const char *names, Arg1 &&arg1, Args &&... args) {
    const char *comma = strchr(names + 1, ',');
    cerr.write(names, comma - names) << " : " << arg1 << " | ";
    __f(comma + 1, args...);
}

#else
#define trace(...)
#endif // ifndef ONLINE_JUDGE

#define endl '\n'
#define fast_cin() ios_base::sync_with_stdio(false)
#define pb push_back
#define gcd(a,b) __gcd((a),(b))
#define lcm(a,b) ((a)*(b))/gcd((a),(b))
#define debug1(x) cerr << x << endl;
#define debug2(x,y) cerr << x << " " << y << endl;
#define debug3(x,y,z) cerr << x << " " << y << " " << z << endl;
#define FOR(i, a, b) for (int i=a; i<(b); i++)
#define FORR(i, a, b) for (int i=a; i>=(b); i--)
ll INF = 2000000000000000001;
double EPS = 1e-9;
ll nextInt(){ll inp; cin>>inp; return inp;}
string nextStr(){string inp; cin>>inp; return inp;}
double nextDouble(){double inp; cin>>inp; return inp;}
ll power(ll a, ll n, ll md){if(n==0){return 1;}else{int res=power(a,n/2,md);res=(res*res)%md;if(n%2!=0){res=(res*a)%md;}return res;}}
random_device rndm;
mt19937 grndm(rndm());
void mix(int* a, int* b){shuffle(a,b,grndm);}

int main(){
	fast_cin();
	// freopen("input.in","r",stdin);
	// freopen("output.out","w",stdout);
	int a,b,c,d,e,f;
	scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
	puts(!a&&b&&d||!c&&d||b*d*f>a*c*e?"Ron":"Hermione");
	return 0;
}

#include <iostream>
#include <cmath>
#include <algorithm>
#include <string>
#include <bits/stdc++.h>

using namespace std;

int main()
{
    /*ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);*/

    int a,b,c,d,e,f;
    cin >> a >> b >> c >>d >> e >> f;
    if(d!=0&&(c==0||b!=0&&(a==0||f!=0&&(e==0||(b*d*f > a*c*e))))) cout << "Ron";
    else cout << "Hermione";

    return 0;
}

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;

int main(){
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout<<setprecision(32);

	int a, b, c, d, e, f;
	cin>>a>>b>>c>>d>>e>>f;
	if(d == 0)cout<<"Hermione";
	else if(c == 0)cout<<"Ron";
	else if(b == 0)cout<<"Hermione";
	else if(a == 0)cout<<"Ron";
	else if(f == 0)cout<<"Hermione";
	else if(e == 0)cout<<"Ron";
	else if(b*d*f > a*c*e)cout<<"Ron";
	else cout<<"Hermione";

	return 0;
}

#include<bits/stdc++.h>
using namespace std;

double a , b , c , d , e , f , t = 1;

int main() {
	scanf ("%lf%lf%lf%lf%lf%lf" , &a , &b , &c , &d , &e , &f);
	t *= (b / a);
	t *= (d / c);
	t *= (f / e);
	if (t > 1 || (c == 0 && d != 0) || (a == 0 && b != 0 && d != 0) && (d != 0)) {
		printf ("Ron");
	} else {
		printf ("Hermione");
	}
	return 0;
}

//be name khoda

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

int main()
{
	double a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
	if((!c && d) || (!a && b && d))
	{
		cout<<"Ron"<<endl;
		return 0;
	}
	if(!b || !d || !f)
	{
		cout<<"Hermione"<<endl;
		return 0;
	}
	double o=((e/d)*c);
	if((o/b)*a>=f)
		cout<<"Hermione"<<endl;
	else
		cout<<"Ron"<<endl;
	return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a, b, c, d, e, f;
    cin >> a >> b >> c >> d >> e >> f;
    int x = a * c * e;
    int y = b * d * f;

    if (x < y || (!c && d) || (!a && b && d)) puts("Ron");
    else puts("Hermione");
    return 0;
}

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
	if(a*c*e<b*d*f||(!c&&d)||(!a&&b&&d))
		cout << "Ron\n" ;
	else
		cout << "Hermione\n" ;
	getchar();
	getchar();
}

#pragma comment (linker, "/stack:640000000")
#include <iostream>
#include <string>
#include <map>
#include <set>
#include <vector>
#include <algorithm>
#include <cassert>
#include <climits>
#include <queue>
#include <ctime>
#include <cmath>
using namespace std;

#define forn(i,n) for (int i = 0; i < (int) (n); i++)
#define for1(i,n) for (int i = 1; i <= (int) (n); i++)
#define li long long
#define ld long double
#define pt pair <int, int>
#define x first
#define y second
#define fs first
#define sc second
#define mp make_pair
#define all(v) v.begin(), v.end()
#define pb push_back
#define sz(v) (int)v.size()

template<typename X> inline X abs (const X &a) { return a < 0? -a: a; }
template<typename X> inline X sqr (const X &a) { return a * a; }

const int NMAX = 100010, INF = 1000*1000*1000;
const ld eps = 1e-9, PI = 3.1415926535897932384626433832795;

int main ()
{
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "rt", stdin);
    //freopen("output.txt", "wt", stdout);
    #endif

    li a[10], A = 1LL, B = 1LL;

    forn (i, 6)
        cin >> a[i];

    forn (i, 6)
    {
        if (i % 2 == 0)
            B *= a[i];
        else
            A *= a[i];
    }

    if ((a[2] == 0LL && a[3] != 0LL) || (a[0] == 0LL && a[1] != 0LL && a[2] != 0LL && a[3] != 0LL))
    {
        cout << "Ron";
        return 0;
    }

    if (A == 0)
    {
        cout << "Hermione";
        return 0;
    }

    if (B == 0)
    {
        cout << "Ron";
        return 0;
    }

    if (A > B)
        cout << "Ron";
    else
        cout << "Hermione";

    return 0;
}

/*
 * File:   pku1150.cpp
 * Author: J_M
 *
 * Created on 2011年1月22日, 下午10:51
 */
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <cassert>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;
#define LL long long
LL gcd(LL a,LL b){
    if (b==0)
        return a;
    else
        return gcd(b,a%b);
}
int main(){
    LL a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;

    if (a==0){
        if (d==0){
            cout<<"Hermione"<<endl;
            return 0;
        }
        if (b==0 && c!=0){
            cout<<"Hermione"<<endl;
        }else
            cout<<"Ron"<<endl;
        return 0;
    }

    if (b==0){
        if (c==0 && d!=0){
            cout<<"Ron"<<endl;
        }else{
            cout<<"Hermione"<<endl;
        }
         return 0;
    }

    if (c==0){
        if (d!=0){
            cout<<"Ron"<<endl;
        }else{
            cout<<"Hermione"<<endl;
        }
        return 0;
    }

    if (d==0){
        cout<<"Hermione"<<endl;
        return 0;
    }

    if (e==0){
        if (f==0){
            cout<<"Hermione"<<endl;
        }else{
            cout<<"Ron"<<endl;
        }
        return 0;
    }
    if (f==0){
        cout<<"Hermione"<<endl;
        return 0;
    }

    LL temp=gcd(b,c);
    LL lcm=b/temp*c;
    a*=lcm/b;
    d*=lcm/c;

    b=lcm;
    c=lcm;

    lcm=d/gcd(d,e)*e;
    a*=lcm/d;
    f*=lcm/e;
    if (f>a)
        cout<<"Ron"<<endl;
    else
        cout<<"Hermione"<<endl;
    return 0;
}

#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <queue>
#include <vector>
#include <cstdio>
#include <string>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>

using namespace std;

const double inf = 111111111;

double a, b, c, d, e, f;

int main() {
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    cin >> a >> b >> c >> d >> e >> f;
    double x = inf;
    if (c == 0 && d != 0) {
        cout << "Ron" << endl;
        return 0;
    }
    if (a == 0) {
        if (b == 0) {
            x = 0;
        }
    } else {
        x = x / a * b;
    }
    if (c == 0) {
        x = 2 * inf;
        if (d == 0) {
            x = 0;
        }
    } else {
        if (x < c) {
            cout << "Hermione" << endl;
            return 0;
        }
        x = x / c * d;
    }
    if (a == 0 && x != 0) {
        cout << "Ron" << endl;
        return 0;
    }
    if (e == 0) {
        x = 3 * inf;
        if (d == 0) {
            x = 0;
        }
    } else {
        if (x < e) {
            cout << "Hermione" << endl;
            return 0;
        }
        x = x / e * f;
    }
    if (f == 0 && a != 0) {
        cout << "Hermione" << endl;
        return 0;
    }
    //cout << x << endl;
    if (x > inf) {
        cout << "Ron" << endl;
    } else {
        cout << "Hermione" << endl;
    }
    return 0;
}

#include <bits/stdc++.h>
#include <stdio.h>
#include <math.h>
using namespace std;
#define Ahmed_El_Moataz           ios_base::sync_with_stdio(0);cin.tie(0);
#define fo(i,a,b)                 for(int i=(a);i<(b);i++)
#define dfo(i,a)                  for(int i=(a-1);i>=0;i--)
#define CN(arr,t)                 for(int i=0;i<t;i++)cin>>arr[i];
#define CN2(arr,t1,t2)            for(int i=0;i<t1;i++)for(int j=0;j<t2;j++)cin>>arr[i][j];
#define CO(arr,t)                 for(int i=0;i<t;i++)cout<<arr[i]<<" ";
typedef long long  ll;typedef unsigned long long  ull;
const ll mod = 1000000007 ,mod2 = 2e9 ;double Pi=3.141592653589793238;
/* a=97  A=65 z=122 Z=90 0=48 setw() I64d ull::18446744073709551615*/
ll gcd(ll a,ll b){return b==0 ? a:gcd(b,a%b);}
ll lcm(ll a,ll b){return (a*b)/gcd(a,b);}
ull FP(ull b,ull p){if(p==0)return 1;return (p%2==1)? (b)*FP(b*b,p/2):FP(b*b,p/2);}
/********************************************************************/

int main()
{
    double a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    double ans=1;
    if(d &&!c){
        cout<<"Ron";
        return 0;
    }
    else if(d && c && b && !a){
        cout<<"Ron";
        return 0;
    }
    else if(!e && f && d && c && b && a){
        cout<<"Ron";
        return 0;
    }
    if(!a)a=0;
    else a=b/a;
    if(!b)b=0;
    else b=d/c;
    if(!e)e=0;
    else e=f/e;
    ans=a*b*e;
    if(ans>1){
        cout<<"Ron";
        return 0;
    }
    else{
        cout<<"Hermione";
        return 0;
    }

}

#include <iostream>
#include <cstring>
#include <cctype>
#include <cmath>
#include <cstdio>
using namespace std;
typedef __int64 int64;
int a,b,c,d,e,f;
int main () {
#ifndef ONLINE_JUDGE
        freopen ("input.txt","r",stdin);
        freopen ("output.txt","w",stdout);
#endif
		cin>>a>>b>>c>>d>>e>>f;
		if (!d) printf("Hermione");
		else if (!c) printf("Ron");
		else if (!b) printf("Hermione");
		else if (!a) printf("Ron");
		else if (!f) printf("Hermione");
		else if (!e) printf("Ron");
		else if (b*d*f>a*c*e) printf("Ron");
		else printf("Hermione");
}

/*
ID: mkagenius1
LANG: C++
TASK:
*/

#include<stdio.h>

#define infinity 1e8

int main()
{
    int a,b,c,d,e,f;
    double lead,gold,sand;
    scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f);
    //after step 1 how much lead will be available::: starting with 1.0 sand.
        if(a == 0 && b > 0) lead = infinity;
        else if(a == 0 && b == 0) lead = 0.0;
        else if(a > 0) lead = (b/(1.0*a));
    //step 1 complete , how much gold will be available after the following step::
        if(c == 0 && d > 0) gold = infinity;
        else if(c == 0 && d == 0) gold = 0.0;
        else if(c > 0 ) gold = (d/(1.0*c))*lead;
    //next ::
        if(e == 0 && f > 0) sand = infinity;
        else if(e==0 && f==0) sand = 0.0;
        else if(e > 0) sand = (f/(1.0*e))*gold;
    if(gold > 1000.0 || (sand > 1.0 + 1e-11 && gold > 0.0 + 1e-11)) printf("Ron");
    else printf("Hermione");
    scanf(" ");
}

#include <iostream>
#include <cstdio>
#include <sstream>
#include <algorithm>
#include <iomanip>
#include <cmath>
#include <ctime>
#include <cstdlib>
#include <set>
#include <map>
#include <vector>
#include <queue>
#include <iterator>

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

#define x0 abc
#define y0 ABC
#define x1 abcd
#define y1 ABCD
#define xn abcde
#define yn ABCDE

#define l_b lower_bound
#define u_b upper_bound

#define in insert
#define er erase

#define fi first
#define se second
#define m_p make_pair

#define p_b push_back
#define po_b pop_back

#define uns unsigned

#define ld long double
#define ll long long

#define cont continue
#define re return

#define MAXLL 9000000000000000000LL
#define MAXINT 2000000000

#define MINLL -9000000000000000000LL
#define MININT -2000000000

#define pi acos(-1.)

#define endl '\n'

#define OUT cout << "-------" << endl;

using namespace std;

using namespace __gnu_pbds;

typedef tree <int, null_type, less <int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;

string pl[2];

ll a, b, c, d, e, f, i, k1, k2, k3;

int main()
{
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);

    ios::sync_with_stdio(0);
    cin.tie(0);

    pl[0] = "Ron";

    pl[1] = "Hermione";

    cin >> a >> b >> c >> d >> e >> f;

    if (d == 0) {
        cout << pl[1] << endl;

        re 0;
    }

    if (c == 0) {
        cout << pl[0] << endl;

        re 0;
    }

    if (b == 0) {
        cout << pl[1] << endl;

        re 0;
    }

    if (a == 0) {
        cout << pl[0] << endl;

        re 0;
    }

    if (f == 0) {
        cout << pl[1] << endl;

        re 0;
    }

    if (e == 0) {
        cout << pl[0] << endl;

        re 0;
    }

    if (b * d * f > a * c * e)
    cout << pl[0];
    else cout << pl[1];

    cout << endl;

    re 0;
}

#include <iostream>

using namespace std;

int main()
{
    double a,b,c,d,e,f;
    cin >> a >> b >> c >> d >> e >>f;
    double ans = b,firstGold;
    if(!c && d){
        cout << "Ron" << endl;
        return 0;
    }
    ans = b*d/c;
    firstGold = ans;
    if(!e && f){
        ans = 1001*(f>0);
    }else{
        ans = ans*f/e;
    }
    if(!a && b){
        ans = 1001*(b>0);
    }else{
        ans = ans*b/a;
    }
    ans = ans*d/c;
    if(ans>firstGold){
        cout << "Ron" << endl;
        return 0;
    }
    cout << "Hermione" << endl;
}

#include <iostream>
#include<algorithm>
#include <string>
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c,d,e,f;
    cin >> a >> b >> c >> d >> e >> f;
    if(a == 0 and b!=0 and d!=0)
        cout << "Ron";
    else if(c == 0 and d != 0)
        cout << "Ron";
    else if(b == 0 or d == 0 or f == 0)
        cout << "Hermione";
    else a*c*e < b* d* f ? cout << "Ron" << '\n':cout << "Hermione" << '\n';
    return 0;
}

#include <stdio.h>
#include <math.h>
#include <vector>
#include <string>
#include <algorithm>
#include <map>
#include <set>
#include <queue>
#include <iostream>
#include <sstream>
using namespace std;

int main()
{
  int a, b, c, d, e, f;
  cin >> a >> b >> c >> d >> e >> f;
  string r1 = "Ron";
  string r2 = "Hermione";
  if (c == 0) {
    if (d == 0) cout << r2 << endl;
    else cout << r1 << endl;
  }
  else if (a == 0) {
    if (b == 0) cout << r2 << endl;
    else if (d == 0) cout << r2 << endl;
    else cout << r1 << endl;
  }
  else if (e == 0) {
    if (f == 0) cout << r2 << endl;
    else if (b == 0 || d == 0) cout << r2 << endl;
    else cout << r1 << endl;
  } else {
    if (b*d*f > a*c*e)
      cout << r1 << endl;
    else cout << r2 << endl;
  }
  return 0;
}

#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 10;
const int M = 5e5 + 10;
const int inf = INT_MAX;

#define ll long long
#define FOR(i,a,b) for(int i = a;i <= b;i++)
#define _FOR(i,a,b) for(int i = a;i >= b;i--)

template<typename T> void read(T &x)
{
    x = 0;int f = 1;
    char c = getchar();
    for(;!isdigit(c);c = getchar()) if(c == '-') f = -1;
    for(;isdigit(c);c = getchar()) x = x * 10 + c - '0';
    x *= f;
}

int T;
int main()
{
    /*freopen("rich.in","r",stdin);
    freopen("rich.out","w",stdout);
	read(T);
	while(T--)
	{*/
		int a,b,c,d,e,f;
		read(a),read(b),read(c),read(d),read(e),read(f);
		if(a == 0 && b != 0 && d != 0) puts("Ron");
		else if(c == 0 && d != 0) puts("Ron");
		else if(b * d * f > a * c * e) puts("Ron");
		else puts("Hermione");
	//}
    return 0;
}

#include<cstdio>
int a,b,c,d,e,f;
int main(){
	scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
	if(1ll*b*d*f>1ll*a*c*e) return printf("Ron"),0;
	if(d&&((!c)||(!a&&b))) return printf("Ron"),0;
	printf("Hermione");
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f;
int main(){
    scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
    if(((b*d*f>a*c*e)||((!c)&&d)||((!a)&&b&&d))&&d) printf("Ron");
    else printf("Hermione");
}

#include<bits/stdc++.h>
using namespace std;
inline int read()
{
	char c=getchar();
	int f=0;
	while(!isdigit(c))
	{
		f|=(c=='-');
		c=getchar();
	}
	int x=0;
	while(isdigit(c))
	{
		x=(x<<3)+(x<<1)+(c^48);
		c=getchar();
	}
	return f?-x:x;
}
int a,b,c,d,e,f;
int main()
{
	a=read(),b=read(),c=read(),d=read(),e=read(),f=read();
	if((b*d*f>a*c*e&&d)||((!c)&&(d))||((!a)&&b&&d))
	{
		cout<<"Ron"<<endl;
	}
	else
	{
		cout<<"Hermione"<<endl;
	}
	return 0;
}

#include<iostream>

using namespace std;

int main() {
    int a = 0,
        b = 0,
        c = 0,
        d = 0,
        e = 0,
        f = 0;
    cin>>a>>b>>c>>d>>e>>f;

    if(a*c*e<b*d*f
        || (c == 0 && d>0)
        || (a == 0 && b>0 && d>0)) {
        printf("Ron");
    }
    else {
        printf("Hermione");
    }

    return 0;
}

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <cstring>
#include <map>
#include <iomanip>

using namespace std;

int main() {
//freopen ("input.txt", "r", stdin);
//freopen ("output.txt", "w", stdout);
  double a, b, c, d, e, f;
  cin >> a >> b >> c >> d >> e >> f;
  double q = e / d * c;
  q = q / b * a;
  if (q < f)
    cout << "Ron";
  else
    cout << "Hermione";
  return 0;
}

#include <iostream>
using namespace std;

int main()
{
	double a,b,c,d,e,f,eps=0.000000001;

	cin>>a>>b>>c>>d>>e>>f;

	if(b*d*f == 0)
	{
		cout<<"Hermione";
		return 0;
	}

	if(a*c*e == 0)
	{
		cout<<"Ron";
		return 0;
	}

	if(((b/a)*(d/c)*(f/e)-1) > eps)
	{
		cout<<"Ron";
		return 0;
	}

	cout<<"Hermione";
	return 0;
}

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int a,b,c,d,e,f;
	cin >> a >> b >> c >> d >> e >> f ;
	if(d!=0 && a==0 && b==0)
	{
		cout << "Ron\n" ;
		return 0;
	}
	if(a*c*e<b*d*f)
		cout << "Ron\n" ;
	else
		cout << "Hermione\n"	;
	getchar();
	getchar();
}

#include<stdio.h>

double process(double x,int a,int b)
{
    if(a==0 && b==0)return 0;
    if(a!=0 && b!=0)return x*b/a;
    if(a==0 && b!=0)return 1e+100;
    if(a!=0 && b==0)return 0;
}
int main()
{
    int a,b,c,d,e,f;
    scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f);

    double t=1000000000;
    t=process(t,a,b);
    t=process(t,c,d);
    if(t>1e+50)
    {
        printf("Ron\n");
        return 0;
    }
    t=process(t,e,f);
    if(t>1000000000+1e-10)
    {
        printf("Ron\n");
    }
    else
    {
        printf("Hermione\n");
    }

}

#include <bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f;
int main() {
	cin>>a>>b>>c>>d>>e>>f;
	if((a!=0 && b==0) || (c!=0 && d==0) || (e!=0 && f==0))
		cout<<"Hermione\n";
	else if(a*c*e<b*d*f)cout<<"Ron\n";
	else if(c==0 && d>0)cout<<"Ron\n";
	else if(a==0 && b>a && d>0)cout<<"Ron\n";
	else cout<<"Hermione\n";
	return 0;
}

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int a,b,c,d,e,f;
	cin >> a >> b >> c >> d >> e >> f ;
	if(a<=b && a && b)
	{
		if(e<=f && e && f)
			cout << "Ron\n" ;
		else
			cout << "Hermione\n" ;
	}
	else
		cout << "Hermione\n" ;
	getchar();
	getchar();
}

#include <cstdio>
#include <cstdlib>
#include <vector>
#include <cmath>
#include <queue>
#include <string>
#include <cstring>
#include <algorithm>
#include <set>
#include <stack>
#define INF 1000000000
#define FOR(A, B) for(A = 0; A < B; A++)

using namespace std;

int main()
{
        int a, b, c, d, e, f;
        scanf("%d %d %d %d %d %d", &a, &b, &c, &d, &e, &f);
bool g = false;
        if(d == 0 || (f == 0 && d < a))
        {
                printf("Hermione");
                return 0;
        }
        if(a == 0)
        {
                a = 1;
                b = INF;
        }
        if(c == 0)
        {
                c = 1;
                d = INF;
        }
        if(e == 0)
        {
                f = INF;
                g = true;
                e = 1;
        }
        long long int x = a * c * e;
        long long int y = x;
        x = ((((x/a)*b)/c)*d);
        if(x == 0)
        {
                printf("Hermione");
                return 0;
        }
        x = (x/e)*f;
//      printf("%d", x);
        if(x <= y&&!g)
                printf("Hermione");
        else
                printf("Ron");
        return 0;
}

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <string>
#include <hash_map>
#include <map>
#include <hash_set>
#include <set>
#include <stack>
#include <algorithm>
#include <sstream>
#include <queue>
#include <math.h>
using namespace std;
typedef long long LL;
#define mems(arr, val) memset(arr, val, sizeof(arr));
#define all(A) A.begin(), A.end()
#define forn(it, from, to) for(int it = from; it < to; ++it)
#define INF 2000000000
#define SIZE 1000009
#define mp(a, b) make_pair(a, b)

bool check(int a, int b)
{
	int delt = 0;
	for(int i = 0; i < 4; ++i)
	{
		if (a % 10 != b % 10) delt++;
		a /= 10;
		b /= 10;
	}

	return delt <= 1;
}

int get_last(int last, int cur)
{
	for(int i = max(1000, last); i <= 9999; ++i)
	{
		if (check(cur, i)) return i;
	}
	return -1;
}

int main()
{
#ifdef MY_SOL
	freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);
#endif
	LL a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
	if (a * c * e < b * d * f || a * b * c * d * e * f == 0) cout<<"Ron"; else cout<<"Hermione";
	return 0;
}

#include <iostream>
#include <cstdio>
#include <vector>
#include <string>
#include <algorithm>
#include <set>
#include <map>
#include <queue>
#include <sstream>
#include <cmath>
#include <cassert>
#include <memory.h>

using namespace std;

#define pb push_back
#define mp make_pair
#define sz(a) (int)(a).size()
#define _(a,b) memset((a), (b), sizeof(a))

void prepare()
{
#ifdef _DEBUG
	freopen("input.txt", "r", stdin);
#endif
}

bool solve()
{
	double a[6];
	for (int i = 0; i <6; i++)
		cin >> a[i];
	double x;
	if (a[2] == 0)
		x = a[3] * 1e7;
	else
		x = a[1] / a[2] * a[3];
	if (a[4] == 0)
		x = a[5] * 1e7;
	else
		x = x / a[4] * a[5];
	if ((a[2] == 0 || a[0] == 0 && a[1] != 0 || x > a[0] + 1e-8) && a[3] > 0)
		printf("Ron\n");
	else
		printf("Hermione\n");
	return false;
}

int main()
{
	prepare();
	while (solve());
	return 0;
}

#include <cstdio>

int main() {
    int a, b, c, d, e, f;
    scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &e, &f);
    if ((b*d*f) == 0 || (a*c*e)/(b*d*f) >= 1) printf("Hermione\n");
    else printf("Ron\n");
}

#include <iostream>
using namespace std;

int main() {
	int a, b, c, d, e, f;
	cin >> a >> b >> c >> d >> e >> f;
	if (c == 0 && d != 0)
		cout << "Ron";
	else if (f == 0)
		cout << "Hermione";
	else if (a == 0)
		cout << "Ron";
	else if (1.0*(b*d) / (a*c) - 1.0*e / f > 0)
		cout << "Ron";
	else
		cout << "Hermione";
}

#include <iostream>
#include <fstream>
#include <cstdio>
#include <cmath>
#include <map>
#include <set>
#include <bitset>
#include <ctime>
#include <cstring>
#include <algorithm>
#include <stack>
#include <queue>
#include <vector>
#include <list>
#define re register
#define ll long long
namespace READ{
	namespace DATA{const int LEN=1<<19;char buf[LEN],*p1,*p2;}
	inline char gc(){using namespace DATA;return (p1==p2)&&(p2=(p1=buf)+fread(buf,1,LEN,stdin),p1==p2)?EOF:*p1++;}
	inline int rd(){int x=0,f=1;char ch=gc();while(!isdigit(ch)){if(ch=='-')f=-1;ch=gc();}while(isdigit(ch))x=(x<<3)+(x<<1)+(ch^48),ch=gc();return x*f;}
}
using namespace READ;
using namespace std;
namespace Double{
	const double eps=1e-12;
	inline int equal(double x,double y){return fabs(x-y)<=eps;}
	inline int xislower(double x,double y){return y-x>eps;}
	inline int xisgreater(double x,double y){return x-y>eps;}
}
using namespace Double;
int t=0,a=0,b=0,c=0,d=0,e=0,f=0;
int main(){
//	freopen("rich.in","r",stdin);
//	freopen("rich.out","w",stdout);
//	t=rd();
	scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
//		a=rd(),b=rd(),c=rd(),d=rd(),e=rd(),f=rd();
	double t=(1.0*e*1.0*a*1.0*c)/(1.0*b*1.0*d);
	double ff=1.0*f;
	if(((a==0||c==0)&&d!=0)||xislower(t,ff))puts("RON");
	else puts("Hermione");
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f;
int main(){
    scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
    if(b*d*f>a*c*e) printf("Ron\n");
    else printf("Hermione\n");
}

#include <bits/stdc++.h>
//std::transform(str.begin(), str.end(), str.begin(), tolower); // все буквы строчные
//cout<<fixed<<setprecision(9)<<double;
#define ull unsigned long long
#define mod (unsigned long long)(1e9 + 7)
using namespace std;
int main() {
	double a, b, c, d, e, f;
	cin >> a >> b >> c >> d >> e >> f;
	if((a * c * e) || (b * d * f)) {
		if(a * c * e >= b * d * f)
			cout << "Hermione";
		else
			cout << "Ron";
	}
	else {
		if(!c && d)
			cout << "Ron";
		else
			cout << "Hermione";
	}
	getchar();
	getchar();
	return 0;
}

#include <iostream>
using namespace std;

int main() {
    int a,b,c,d,e,f;cin>>a>>b>>c>>d>>e>>f;
    if(d==0)cout<<"Hermione";
    else if(c==0)cout<<"Ron";
    else if(b==0)cout<<"Hermione";
    else if(e==0&&f>0)cout<<"Ron";
    else if(a==0&&b>0)cout<<"Ron";
    else if(a>b&&f==0)cout<<"Hermione";
    else
    {
        while(f<c){e*=2;f*=2;}
        while(b<e){a*=2;b*=2;}
    //cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<f<<endl;
    long long x=b;x/=e;x*=f;x/=c;x*=d;
        if(x<=a)cout<<"Hermione";
        else cout<<"Ron";
    }

}

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <math.h>
#include <algorithm>
#include <string.h>
#include <vector>
#include <time.h>
#include <string>

typedef long long LL;

using namespace std;

LL a;
LL t[6];

int main()
{
	//freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);
	a = 1;
	for (int i = 0; i < 6; i++)
	{
		cin >> t[i];
	}
	double res = 1.0;
	for (int i = 0; i < 6; i += 2)
	{
		if (t[i] > 0)
			res *= (double)t[i + 1] / (double)t[i];
		else
			res = 1000000000000.0;
	}
	if (res > 1.0)
		printf("Ron\n");
	else
		printf("Hermione\n");
	return 0;
}

#include <iostream>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <math.h>

using namespace std;
int min(int a,int b){
    if(a>b){
        return b;
    }
    else{
        return a;
    }
}
int main(){
    double a1,a2,a3,a4,a5,a6;
    cin>>a1>>a2>>a3>>a4>>a5>>a6;
    if((a5==0)&&(a6!=0)){
        cout<<"Ron";
    }
    else{
    if(a1*a3*a5==0){
        if(a2*a4*a6==0){
            cout<<"Hermione";
        }
        else{
            cout<<"Ron";
        }
    }
    else{
        if(a2*a4*a6==0){
            cout<<"Hermione";
        }
        else{
            if(a2*a4*a6/a1/a3/a5>1){
               cout<<"Ron";
            }
            else{
                cout<<"Hermione";
            }
        }
    }
    }
}

#pragma comment(linker, "/STACK:16777216")

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cfloat>
#include <climits>
#include <cctype>
#include <cmath>
#include <cassert>
#include <ctime>

#include <iostream>
#include <iomanip>
#include <algorithm>
#include <sstream>
#include <string>
#include <vector>
#include <deque>
#include <list>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <bitset>
#include <complex>
#include <functional>
#include <numeric>

using namespace std;

template<class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cout << *i << " "; cout << endl; }

typedef long long ll;

#define eps 1e-10
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f3f3f3fLL

#define fr(x,y,z) for(int(x)=(y);(x)<(z);(x)++)
#define cast(x,t) *({stringstream ss;static t __ret;ss<<x,ss>>__ret;&__ret;})

#define dbg(x) cout << #x << " == " << x << endl
#define print(x) cout << x << endl

// var
ll a[10];

int main() {

	// solve
	fr(i,0,6)
		cin >> a[i];

	if(!a[1] || !a[3] || !a[5]) {
		print("Hermione");
		return 0;
	}

	if(!a[0] || !a[2] || !a[4]) {
		print("Ron");
		return 0;
	}

	ll s = 1;
	fr(i,0,6) {
		s = s * a[i];
	}

	ll l = s / a[0] * a[1];
	ll g = l / a[2] * a[3];
	ll ns = g / a[4] * a[5];

	if(ns > s) print("Ron"); else print("Hermione");

	return 0;
}

// OvO      §§

#include<bits/stdc++.h>

using namespace std;

typedef long long int ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int,int> pint;
typedef pair<ll,ll> pll;

#define Max 1000001
#define intinf 2147483647
#define longlonginf 9223372036854775807
#define MOD 998244353
#define MOD2 1000000007
#define fastio ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL)
#define vint vector<int>
#define vll vector<long long>
#define endl '\n'
#define fi first
#define se second
#define pb push_back
#define F(i,n) for(int i = 0;i<n;i++)
#define Fr(i,l,r) for(int i = l;i <= r;i++)
#define rF(i,n) for(int i = n-1;i>=0;i--)
#define all(arr) arr.begin(),arr.end()

ll Lpow(ll a,ll b)
{
    ll ans = 1;
    while(b > 0)
    {
        if(b%2)
            ans = (ans*a);
        a = (a*a);
        b = b/2;
    }
    return ans;
}

ll gcd(ll a,ll b)
{
    if(a%b==0)
        return b;
    else
        return gcd(b,a%b);
}

signed main()
{
    fastio;

    int a,b,c,d,e,f;
    cin >> a >> b >> c >> d >> e >> f;

    if(a*c*e == 0 && b*d*f == 0)
    {
        if(f == 0)
            cout << "Hermione\n";
        else if(e == 0)
            cout << "Ron\n";
        else if(d == 0)
            cout << "Hermione\n";
        else if(c == 0)
            cout << "Ron\n";
        else if(b == 0)
            cout << "Hermione\n";
        else
            cout << "Ron\n";
    }
    else if(a*c*e >= b*d*f)
        cout << "Hermoine\n";
    else
        cout << "Ron\n";

    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main(){
long double a, b, c, d, e, f;
cin>>a>>b>>c>>d>>e>>f;
long double hi=b*d;
hi/=c;
hi*=f;
hi/=e;
if(hi>a)
    cout<<"Ron";
else
    cout<<"Hermione";
return 0;
}

#include<iostream>
using namespace std;
int main(){

     int a,b,c,d,e,f;
     cin>>a>>b>>c>>d>>e>>f;

     bool herm;

     if(a==0&&b==0&&c==0&&d==0&&e==0&&f==0)
          herm=true;
     else if(b==0||d==0||f==0)
          herm=true;
     else if(a==0||c==0||e==0)
          herm=false;
     else if (b*d*f > a*c*e)
          herm=false;
     else
          herm=true;

     if(herm)
          cout<<"Hermione";
     else
          cout<<"Ron";

}

#include<iostream>
using namespace std;

int main()
{
	int a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
	if(d==0) cout<<"Hermione";
	else if(c!=0 && ((a==0 && b==0) || (e==0 && f==0))) cout<<"Hermione";
	else if(c==0 && ((a==0 && b==0) || (f==0 && e==0))) cout<<"Ron";
	else if(a==0 || c==0 || e==0) cout<<"Ron";
	else if(f==0 || b==0) cout<<"Hermione";
	else if((b/(double)a)*(d/(double)c)*(f/(double)e)>1) cout<<"Ron";
	else cout<<"Hermione";
	return 0;
}

#ifndef Local
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,popcnt,abm,mmx,avx")
#endif

#include <bits/stdc++.h>

#include <ext/numeric>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace __gnu_cxx;
using namespace std;

#define popCnt(x) (__builtin_popcountll(x))
#define sz(x) ((int)(x.size()))
#define all(v) begin(v), end(v)
typedef long long Long;
typedef double Double;

template <class T>
istream& operator>>(istream& is, vector<T>& v) {
  for (auto& x : v) {
    is >> x;
  }
  return is;
}

template <class T>
ostream& operator<<(ostream& os, vector<T>& v) {
  for (auto& x : v) {
    os << x << " ";
  }
  return os;
}

const int N = 1003;

Long sum_x[N];
Long sum_y[N];

Long sum_row[N];
Long sum_col[N];

int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#ifdef Local
  freopen("test.in", "r", stdin);
#else
#define endl '\n'
#endif

  Long a, b, c, d, e, f;
  cin >> a >> b >> c >> d >> e >> f;
  Long num = b * d * f;
  Long den = a * c * e;
  if (num > den || a == 0) {
    cout << "Ron" << endl;
  } else {
    cout << "Hermione" << endl;
  }
  return 0;
}

//#define ONLINE_JUDGE
//#define GenerateTest

#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <deque>
#include <map>
#include <set>
#include <string>
#include <stack>
#include <list>
#include <sstream>
#include <numeric>
#include <iomanip>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <ctime>

#include <assert.h>
//#include "BigInteger\cbignum.h"
using namespace std;

#pragma comment(linker, "/STACK:264777216")

typedef long long LL;
typedef long long cBigNumber;
typedef unsigned int uint;
typedef unsigned long long ULL;

void Solve()
{
 int a[3];
     int b[3];
     long double d[6];
     for(int i = 0;i < 6;++i)
     {
         if(i % 2 == 0)
         cin >> a[i / 2];
         else cin >> b[i / 2];
         d[i] = 0;
     }
     bool is = false;

     d[0] = 1.0;

    double old = -1;
     for(int i = 0;i < 20;++i)
     {
         for(int j = 0;j < 3;++j)
         {
             if(a[j] != 0)
                 d[(j + 1) % 3] = d[j] / a[j] * b[j];
             else
                 if(b[j] != 0)
                 d[(j + 1) % 3] = 1e10;
             else d[(j + 1) % 3]  = 0;
         }
         if(i == 0)
             old = d[2];
         if(d[2] > old) break;
     }

     is = d[2] > old;
     if(is)
     {
         cout << "Ron";
     }
     else  cout << "Hermione";

}

#ifndef ONLINE_JUDGE
#include <ctime>
#endif
int main()
{

#ifdef ONLINE_JUDGE
    //freopen("taxi.in", "r+", stdin);
    //freopen("split.out", "w+", stdout);
#endif

#ifndef ONLINE_JUDGE
    freopen("input.txt", "rt", stdin);
    //freopen("output.txt", "wt", stdout);
#ifdef GenerateTest

    freopen("output.txt", "wt", stdout);

#endif

    clock_t start = clock();
#endif

    Solve();

#ifndef ONLINE_JUDGE
    clock_t end = clock();
    cout <<"\n\nTime: " <<(double)(end-start)/CLOCKS_PER_SEC <<" seconds" <<endl;
#endif
    return 0;
}

//
//  pA.cpp
//  Codeforces Beta Round #60
//
//  Created by admin on 2018/8/14.
//  Copyright © 2018 admin. All rights reserved.
//

#include <iostream>

using namespace std;

double a, b, c, d, e, f;

void init() {
    scanf("%lf %lf %lf %lf %lf %lf", &a, &b, &c, &d, &e, &f);
}

void solve() {
    if(b == 0 || d == 0 || f == 0) {
        printf("Hermione\n");
    }
    else if(a == 0 || c == 0 || e == 0) {
        printf("Ron\n");
    }
    else {
        d = d*b/c;
        f = f*d/e;
        if(f > a) printf("Ron\n");
        else printf("Hermione\n");
    }
}

int main() {
    init();
    solve();
}

#include <cstdio>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstdlib>
#include <queue>
#include <set>
#include <cstring>
#include <sstream>
#include <cassert>
#include <map>
#include <stack>

#define FOR(I,A,B) for(int I=(A);I<(B);I++)
#define REP(I,N) FOR(I,0,N)
#define ALL(A) (A).begin(),(A).end()

#define SQR(x) ((x)*(x))
#define PB(x) push_back(x)

#define PI (acos(-1.0))

using namespace std;

typedef vector<int> VI;
typedef vector< vector<int> > VVI;
const int inf = 987654321;
int main(){
    int a,b,c,d,e,f;
    while(cin>>a>>b>>c>>d>>e>>f){
    double fi,se,th;
    if( a == 0) {
        if( b > 0)
            fi = inf;
        else fi = 0;
    }
    else{
        fi = (double)b/a;
    }
    if( c == 0){
        if( d > 0)
            se = inf;
        else se = 0;
    }
    else se = (double)d/c;
    if( e == 0){
        if( f > 0)
            th = inf;
        else th = 0;
    }
    else th = (double)f/e;
    double ans = 1;
    ans *= fi;
    ans *= se;
    ans *= th;
    if( ans <= 1)
        cout<<"Hermione"<<endl;
    else
        cout<<"Ron"<<endl;
    }
    return 0;
}

#include <iostream>

using namespace std;

int main()
{
	int a, b, c, d, e, f, x, y, m = 0;
	cin >> a >> b >> c >> d >> e >> f;
	x = max((a * 1000) , 1000);
	y = x;
	if(a == 0 && b >= 0)
		x = b * x;
	else
		x = (b * x) / a;
	if(c == 0 && d >= 0)
	{
		x = d * y;
		if(d > 0)
			m = 1;
	}
	else
		x = (d * x) / c;
	x = x - 1;
	if(e == 0 && f >= 0)
		x = f * y;
	else
		x = (f * x) / e;
	if((x >= y || m == 1) && (d > 0))
		cout << "Ron" << endl;
	else
		cout << "Hermione" << endl;
	return 0;
}

#include<cstdio>
#include<iostream>
#include<queue>
#include<vector>
#include<string>
#include<algorithm>
#include<map>
#include<sstream>
#include<cmath>
#include<cctype>
#include<cassert>

using namespace std;

#define pf printf
#define sf scanf
#define VI vector<int>
#define pb push_back
#define fo(a,b) for(a=0;a<b;a++)

const int inf = 1000000000;

int main() {
	int a, b, c, d, e, f;
	cin >> a >> b >> c >> d >> e >> f;
	double x = 1;

	//a += 1e-9;
	//c += 1e-9;
	//e += 1e-9;

	if( a != 0 )
		x = x / a * b;
	else
		x = b * inf;

	if( c != 0 )
		x = x / c * d;
	else
		x = d * inf;

	if( e != 0 )
		x = x / e * f;
	else
		x = f * inf;

	if( x > 1 && fabs(x-1) > 1e-9 ) pf("Ron\n");
	else pf("Hermione\n");
	return 0;
}

#include <iostream>
#include <cmath>
#include <vector>
#include <cstdlib>
#include <cstdio>
#include <string>
#include <cstring>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <algorithm>
using namespace std;

int main()
{
	double a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
	if (a==0&&b==0||c==0&&d==0||e==0&&f==0)
	{
		cout<<"Hermione";
		return 0;
	}
	if (a==0||c==0||e==0)
	{
		cout<<"Ron";
		return 0;
	}
	if (b==0||d==0||f==0)
	{
		cout<<"Hermione";
		return 0;
	}
	double k1=b/a;
	double k2=d/c;
	double k3=f/e;

	if (k1*k2*k3>1.0)
		cout<<"Ron";
	else
		cout<<"Hermione";

	return 0;
}

#include <cstdio>
typedef long long ll;
const int inf=1100000000000000000LL;
int a,b,c,d,e,f;
ll s,p,g;
ll os,op,og;
void win() {
	printf("Ron\n");
}
void fail() {
	printf("Hermione\n");
}
int main() {
	scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
	int cs=b*d*f;
	int z=a*c*e;
	if (a*c==0 && b*d>0) {
		win();
		return 0;
	}
	if (cs>z) {
		win();
		return 0;
	} else if (cs<z || cs==z && cs>0) {
		fail();
		return 0;
	}
	fail();
	return 0;
	if (b==0) fail(); else
		if (a==0) p=inf; else {
			p=s/a*b;
			os=s%a;
			if (d==0) fail(); else
				if (c==0) win(); else {
					if (p==inf) win(); else {
						g=p/c*d;
						op=p%c;
						if (f==0) fail(); else
							if (e==0) win(); else {
								s=g/e*f;
								og=g%e;
								if (s>1000000000 || s==1000000000 && os>0 || op>0 || og>0) win(); else fail();
							}
					}
				}
		}
	return 0;
}

#include <iostream>

using namespace std;

#define INF 1000000000

int main()
{
    int a,b,c,d,e,f;

    cin >> a >> b >> c >> d >> e >> f;

    if(d==0)
    {
        cout << "Hermione" << endl;
        return 0;
    }

    if(a==0 || c==0 || e==0)
    {
        cout << "Ron" << endl;
        return 0;
    }

    double am=INF;
    am*=((double)b/a);
    am*=((double)d/c);
    double v=((double)e/f)*INF;

    if(am>v)
    {
        cout << "Ron" << endl;
        return 0;
    }
    else
    {
        cout << "Hermione" << endl;
        return 0;
    }

    cout << "Ron" << endl;

    return 0;
}

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<stdio.h>
#include<stack>
using namespace std;
const long long N=1e9;
int main()
{   int m,x,t,k,r,ma=10000000,mi,y,d,a1[100],b,b1[100];
   int i,l,a,c,e,f,j,n;
   double sum,num;
    cin>>a>>b>>c>>d>>e>>f;
    num=a;
    sum=b/a;
    num*=sum;
    sum=d/c;
    num*=sum;
    sum=f/e;
    num*=sum;
    if(num>a)cout<<"Ron"<<endl;
    else
    {
        cout<<"Hermione";
    }

    return 0;
}
//

#include <cstdio>
#include <cstdlib>
#include <vector>
#include <cmath>
#include <queue>
#include <string>
#include <cstring>
#include <algorithm>
#include <set>
#include <stack>
#define INF 1000000000
#define FOR(A, B) for(A = 0; A < B; A++)

using namespace std;

int main()
{
        int a, b, c, d, e, f;
        scanf("%d %d %d %d %d %d", &a, &b, &c, &d, &e, &f);
bool g = false;
        if(d == 0 || (f == 0 && (d < a || c == 0)))
        {
                printf("Hermione");
                return 0;
        }
        if(a == 0)
        {
                a = 1;
                b = INF;
        }
        if(c == 0)
        {
                c = 1;
                d = INF;
        }
        if(e == 0)
        {
                f = INF;
                g = true;
                e = 1;
        }
        long long int x = a * c * e;
        long long int y = x;
        x = ((((x/a)*b)/c)*d);
        if(x == 0)
        {
                printf("Hermione");
                return 0;
        }
        x = (x/e)*f;
//      printf("%d", x);
        if(x <= y&&!g)
                printf("Hermione");
        else
                printf("Ron");
        return 0;
}

#include <bits/stdc++.h>
using namespace std;
//debug
#ifdef grief
#define debug(...) do{\
	fprintf(stderr , "%s - %d : (%s) = " , __PRETTY_FUNCTION__ , __LINE__ , #__VA_ARGS__ );\
	_DO(__VA_ARGS__);\
}while(0)
template<typename I> 				void _DO(I&&x){	cerr<<x<<endl;	}
template<typename I,typename...T>	void _DO(I&&x,T&&...tail){	cerr<<x<<" , ";	_DO(tail...);	}
template<typename _a,typename _b> 	ostream& operator << (ostream &_s,const pair<_a,_b> &_p)
{	return _s<<'('<<_p.first<<','<<_p.second<<')';	}
#define IOS
#else
#define debug(...)
#define IOS do{ios_base::sync_with_stdio(0); cin.tie(0);}while(0);
#endif
//type
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef priority_queue<pll,vector<pll>,greater<pll> > heap;
//macro
#define SZ(x) ((ll)(x).size())
#define ALL(x) (x).begin(),(x).end()
#define F first
#define S second
#define pb push_back
#define eb emplace_back
#define stp setprecision(18)<<fixed
const ll INF=0x3f3f3f3f3f3f3f3f;
const int NF=0x3f3f3f3f;
const ll MAX=1e5+5,Mlg=__lg(MAX)+2;
const ll MOD=1e9+7;
// ready~ go!
// let's coding and have fun!
// I can't solve this problem!
int main(){
	IOS
	ll a,b,c,d,e,f;	cin>>a>>b>>c>>d>>e>>f;
	if(b*d*f>a*c*e)	cout<<"Ron\n";
	else			cout<<"Hermione\n";
	return 0;
}

#include <iostream>
#include <vector>
#include <algorithm>
#include <tuple>
#include <string>

using namespace std;

int main()
{
#ifdef LOCAL
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
    int a, b, c, d, e, f;
    cin >> a >> b >> c >> d >> e >> f;
    if ((c == 0 && d != 0)
        || (a == 0 && b != 0 && d != 0)
        || (e == 0 && f != 0 && b != 0)) {
        cout << "Ron\n";
        return 0;
    }
    if (b * d * f > a * c * e) {
        cout << "Ron\n";
        return 0;
    }
    cout << "Hermione\n";
    return 0;
}

#include<iostream>
using namespace std;
int main()
{
    int a,b,c,d,e,f;
    cin >> a >> b >> c >> d >> e >> f;
    if( b*d*f > a*c*e ) cout << "Ron" << endl;
    else cout << "Hermione" << endl;
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f;
int main() {
	cin>>a>>b>>c>>d>>e>>f;
	if(b==0 || d==0 || f==0)
		cout<<"Hermione\n";
	else if(a*c*e<b*d*f)cout<<"Ron\n";
	else cout<<"Hermione\n";
	return 0;
}

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

int main()
{
    double a,b,c,d,e,f;
    while(cin>>a>>b>>c>>d>>e>>f)
    {
        if((a==0&&b==0)||(c==0&&d==0)||(e==0&&f==0)||b==0||d==0||f==0){cout<<"Hermione"<<endl;continue;}
        if(a==0||c==0||e==0){cout<<"Ron"<<endl;continue;}
        if((f/e*d/c*b/a)*a-a>1e-9)cout<<"Ron"<<endl;
        else cout<<"Hermione"<<endl;
    }
    return 0;
}

/** Writer: Sourav Malo **/

#include <iostream>
using namespace std;

#define ll long long int

int main ()
{
	ll a, b, c, d, e, f;
	cin >> a >> b >> c >> d >> e >> f;
	double x, y, z;
	if(d == 0)
	{
		cout << "Hermione" << endl;
	}
	else if((c == 0) && (d > 0))
	{
		cout << "Ron" << endl;
	}
	else if(b == 0)
	{
		cout << "Hermione" << endl;
	}
	else if(a == 0)
	{
		cout << "Ron" << endl;
	}
	else if((e == 0) && (f > 0))
	{
		cout << "Ron" << endl;
	}
	else if((a >= b) && (c >= d) && (e <= f))
	{
		cout << "Ron" << endl;
	}
	else if(e >= f)
	{
		cout << "Hermione" << endl;
	}
	else
	{
		cout << "Ron" << endl;
	}

	return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    if(!a&&!b&&!c&&!d&&!e&&!f)
        return cout<<"Hermione\n",0;
    if(d==0||b==0||(c!=0&&f==0))
        return cout<<"Hermione\n",0;
    if(c==0||e==0)
        return cout<<"Ron\n",0;
    if(b>a&&c>d&&f>e)
        return cout<<"Ron\n",0;
    return cout<<"Hermione\n",0;

}

#include <iostream>
using namespace std;

int main() {
    int a,b,c,d,e,f;cin>>a>>b>>c>>d>>e>>f;
    if((a<=b||e<=f)&&d>0)cout<<"Ron";
    else cout<<"Hermione";
    return 0;
}

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <string>
#include <hash_map>
#include <map>
#include <hash_set>
#include <set>
#include <stack>
#include <algorithm>
#include <sstream>
#include <queue>
#include <math.h>
using namespace std;
typedef long long LL;
#define mems(arr, val) memset(arr, val, sizeof(arr));
#define all(A) A.begin(), A.end()
#define forn(it, from, to) for(int it = from; it < to; ++it)
#define INF 2000000000
#define SIZE 1000009
#define mp(a, b) make_pair(a, b)

bool check(int a, int b)
{
	int delt = 0;
	for(int i = 0; i < 4; ++i)
	{
		if (a % 10 != b % 10) delt++;
		a /= 10;
		b /= 10;
	}

	return delt <= 1;
}

int get_last(int last, int cur)
{
	for(int i = max(1000, last); i <= 9999; ++i)
	{
		if (check(cur, i)) return i;
	}
	return -1;
}

int main()
{
#ifdef MY_SOL
	freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);
#endif
	LL a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
	if (d != 0 && c == 0) {cout<<"Ron"; return 0;}
	if (d == 0) {cout<<"Hermione"; return 0;}

	if (a * c * e < b * d * f) cout<<"Ron"; else cout<<"Hermione";
	return 0;
}

#define _CRT_SECURE_NO_DEPRECATE
#define _USE_MATH_DEFINES

#include <utility>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <string>
#include <cstring>
#include <vector>
#include <map>

using namespace std;

typedef long long int64;
#define INF 1234567890
#define prime 999979
#define FOR(a, b) for(int a = 0; a < b; ++a)

double a, b, c, d, e, f;
int main()
{
	//freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
	cin >> a >> b >> c >> d >> e >> f;
	if (c == 0 && d > 0)
	{
		cout << "Ron";
		return 0;
	}
	if (d == 0)
	{
		cout << "Hermione";
		return 0;
	}
	if (a == 0 && d > 0)
	{
		cout << "Ron";
		return 0;
	}
	if (b == 0 && c > 0 && d > 0)
	{
		cout << "Hermione";
		return 0;
	}
	if (e == 0 && f == 0 && b > 0 && d > 0)
	{
		double x = b/a;
		double y = d/c*x;
		if (y > 1) cout << "Ron"; else cout << "Hermione";
		return 0;
	}
	if (e == 0 && f > 0 && b > 0 && d > 0)
	{
		double x = b/a;
		double y = d/c*x;
		if (y > 0) cout << "Ron"; else cout << "Hermione";
		return 0;
	}
	double x = b/a;
	double y = d/c*x;
	double z = f/e*y;
	if (z > 1) cout << "Ron"; else cout << "Hermione";
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
long long a,b,c,d,e,f;
int main()
{
	ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	cin>>a>>b>>c>>d>>e>>f;
	if (a*c*e<b*d*f) return cout<<"Ron",0;
	cout<<"Hermione";
	return 0;
}

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    long long a, b, c, d, e, f;
    cin >> a >> b >> c >> d >> e >> f;
    if((d != 0 && c == 0) || ((b != 0 && d != 0 && f != 0) &&
        (a == 0 || c == 0 || e == 0 ||
        (b*d*f+a*c*e-1)/(a*c*e) > 1))) {
            cout << "Ron\n";
    } else {
        cout << "Hermione\n";
    }
    return 0;
}

#include<iostream>

using namespace std;

void printYes(){
	cout << "Ron" << endl;  //YES
}

void printNo(){
	cout << "Hermione" << endl; //NO
}

int main()
{
	int a, b, c, d, e, f;
	cin >> a >> b >> c >> d >> e >> f;

	if (d != 0) {
		if (c == 0) {
			printYes();
		}
		else {
			if (b == 0)
				printNo();
			if (a == 0)
				printYes();
			if (f == 0)
				printNo();
			else
				printYes();
		}
	}
	else if (d==0)
		printNo();

	else{
		if ((b*d*f) / (c * e * a * 1.0) - 1 > 0)
			printYes();
		else
			printNo();
	}
}

#include <iostream>
using namespace std;
int main() {
int a,b,c,d,e,f;
cin>>a>>b>>c>>d>>e>>f;
if(a*c*e<b*d*f){
cout<<"Ron";
}
else if(a==0&&b!=0&&d!=0){
cout<<"Ron";
}
else if(c==0&&d!=0){
cout<<"Ron";
}
else if(a==0&&e!=0&&f!=0){
cout<<"Ron";
}
else{
  cout<<"Hermione";
}
}

#include <iostream>
using namespace std;

int main()
{
	float a, b, c, d, e, f;
	cin>> a >> b >> c >> d >> e >> f;

	if(c == 0 || e == 0)
	{
		cout<< "Ron\n";
		return 0;
	}
	float x = (d * b * f) / (c * e);

	if(x > a)
		cout<< "Ron\n";
	else
		cout<< "Hermione\n";
}

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <algorithm>
#include <string>
using namespace std;

int main()
{
    int a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;

    if (a!=0 && b==0 && c==0 && d!=0 && e<f && e==0) {cout<<"Ron"; return 0;}
    if (a==0 && b==0 && c==0 && d!=0 && e<f && e==0) {cout<<"Ron"; return 0;}
    if (a==0 && b==0 && c<d && c!=0 && e>f && f==0) {cout<<"Hermione"; return 0;}
    if (a!=0 && b==0 && c!=0 && d!=0 && c/d<1)  {cout<<"Hermione"; return 0;}
    if (a!=0 && b==0 && f==0 && c<=d && d!=0) {cout<<"Ron"; return 0;}
    if (a<=b && d!=0 && f==0 && c/d<1) {cout<<"Ron"; return 0;}
    if (a>=b && a!=0 && b!=0 && c==0 && d!=0 && f==0)  {cout<<"Ron"; return 0;}
    if (a==0 && b!=0 && f==0 && c>d && d!=0) {cout<<"Ron"; return 0;}

    if (b==0 || d==0 || f==0)  {cout<<"Hermione"; return 0;}

    if (a*c*e/b/d/f<1) cout<<"Ron";
    else cout<<"Hermione";
    return 0;

}

#include<bits/stdc++.h>
using namespace std;
int t,a,b,c,d,e,f;
long long m,n;
int main()
{
	//freopen("rich.in","r",stdin);
	//freopen("rich.out","w",stdout);
	cin>>t;
	for(int i=1;i<=t;i++)
  {
	cin>>a>>b>>c>>d>>e>>f;
	m=b*d*f;
	n=a*c*e;

	if(d==0)
	{
		cout<<"Hermione"<<endl;
		continue;
	}
    if(c==0&&d!=0)
    {
    	cout<<"Ron"<<endl;
    	continue;
    }
    if(b==0)
    {
    	cout<<"Hermione"<<endl;
    	continue;
    }
    if(a==0)
    {
    	cout<<"Ron"<<endl;
    	continue;
    }
    if(f==0)
    {
    	cout<<"Hermione"<<endl;
    	continue;
    }
    if(e==0)
    {
    	cout<<"Ron"<<endl;
    	continue;
    }

	if((m*1.0000000)/(n*1.0000000)>1)
	{
		cout<<"Ron"<<endl;
	}
	else
	{
		cout<<"Hermione"<<endl;
	}
  }

	return 0;
}

#include<bits/stdc++.h>
using namespace std;

int main()
{
    long long int a,b,c,d,e,f;
    while(scanf("%I64d %I64d %I64d %I64d %I64d %I64d",&a,&b,&c,&d,&e,&f)==6)
    {
        if(c==0&&d>0)
         cout<<"Ron"<<endl;

        else if(b==0||d==0||f==0)
            cout<<"Hermione"<<endl;
        else if(a==0||c==0||e==0)
            cout<<"Ron"<<endl;
        else
        {
            if(a+c+e>=b+d+f)
                cout<<"Hermione"<<endl;
            else cout<<"Ron"<<endl;
        }
    }

    return 0;
}

#include <bits/stdc++.h>

using namespace std;

int main()
{
	//freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
	long double a, b, c, d, e, f;
	cin >> a >> b >> c >> d >> e >> f;
	if (c == 0 && d != 0)
	{
		cout << "Ron";
		return 0;
	}
	if (b * d * f / (a * c * e) > 1)
		cout << "Ron";
	else
		cout << "Hermione";
	return 0;
}

#include<iostream>
#include<map>
#include<string>
#include<string.h>
#include<vector>
#include<stdio.h>
#include <cstdio>
#include <vector>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cctype>
#include <stack>
#include <queue>
#include <list>
#include <sstream>
#include <cmath>
#include <bitset>
#include <limits.h>
#include <limits>
#include <utility>
#include <set>
#include <numeric>
#include <functional>
#define all(v) v.begin(),v.end()
#define R(i) freopen(i,"r",stdin)
#define W(i) freopen(i,"w",stdout)
#define R_W R("i.txt"),W("o.txt");
#define FOR(i,f,t) for(int i=f;i<t;i++)
#define r(e) for(int i=0;i<e;i++)
#define inf numeric_limits<int>::max()
#define minf numeric_limits<int>::min()
#define DFS_WHITE -1
#define DFS_BLACK 1
using namespace std;
typedef pair<int, int> ii;
typedef vector<ii> vii;
typedef vector<int> vi;
vector< vi > AdjList;

int main(){
    ///////////////////////////////////R_W;
    int a, b, c, d, e, f;
    cin >> a >> b >> c >> d >> e >> f;
    int infinites = 0;
    int zeros = 0;
    int left = (b*d*f);
    int right = (c*e);
        if (!left && !right){
            cout << "Hermione" << endl;
            return  0;
        }
        else if(!right){
            cout << "Ron" << endl;
            return 0;
        }
        int integral = left / right;
        int mod = left%right;
        if (integral > a || (integral == a && mod != 0))
        {
            cout << "Ron" << endl;
            return 0;
        }
        else{
            cout << "Hermione" << endl;
        }
    return 0;
}

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <vector>
#include <queue>
#include <stack>
#include <list>
#include <set>
#include <map>
//#include <unordered_set>
//#include <unordered_map>
#include <bitset>
#include <algorithm>
#include <cmath>
#include <locale>
using namespace std;
#define MS0(I) memset(I, 0, sizeof(I));
#define MS1(I) memset(I, -1, sizeof(I));
#define rep(i, n) for(int i = 0; i < (n); ++i)
#define rep1(i, s, n) for(int i = (s); i < (n); ++i)
#define per1(i, a, b) for(int i = a; i >= b; --i)
#define DRI(A) int A; scanf("%d", &A);
#define DRII(A, B) int A, B; scanf("%d %d", &A, &B);
#define DRIII(A, B, C) int A, B, C; scanf("%d %d %d", &A, &B, &C);
#define DRL(A) long long A; scanf("%lld", &A);
#define DRLL(A, B) long long A, B; scanf("%lld %lld", &A, &B);
#define DRLLL(A, B, C) long long A, B, C; scanf("%lld %lld %lld", &A, &B, &C);
#define SZ(X) ((int)X.size() )
#define MP make_pair
#define pb push_back
#define F first
#define S second
#define ALL(I) (I).begin(), (I).end()
typedef const void CV;
typedef long long LL;
typedef unsigned long long ULL;
typedef double DB;
typedef long double LDB;
typedef pair<int, int> PII;
typedef pair<int, LL> PIL;
typedef pair<LL, int> PLI;
const double eps = 1e-7;
//const double PI = acos(-1);
//////////////////////////////
const LL INFF = 1e18;
const int INF = 1e9;
const int mod = 1e9+7;
const int MAX = 1e5+7;
int main(void){
  DRLL(a, b); DRLL(c, d); DRLL(e, f);
  LL v = a*c*e;
  LL v2 = b*d*f;
  puts(v < v2 ? "Ron" : "Hermione");
  return 0;
}

#include<iostream>
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<string>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<sstream>
using namespace std;
#define FOR(i,n) for(i=0;i<n;i++)
#define FOR1(i,n) for(i=1;i<=n;i++)
#define FORab(i,a,b) for(i=a;i<=b;i++)
int main()
{
double a,b,c,d,e,f,t1;
    cin>>a>>b>>c>>d>>e>>f;
    t1=(b*d*f)/(c*e);
    if(t1>a)cout<<"Ron"<<endl;
    else cout<<"Hermione"<<endl;

    return 0;
}

#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <string>

#include <vector>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <algorithm>
#include <utility>

#include <tr1/functional>
#include <tr1/tuple>
#include <tr1/regex>
#include <tr1/unordered_map>
#include <tr1/unordered_set>

using namespace std;
using namespace std::tr1;

typedef long double ld;
typedef long long   ll;
typedef unsigned long long ull;
typedef unsigned int uint;

typedef vector<int> vi;
typedef vector<ld> vd;
typedef vector< vector<int> > vvi;

/// Functions && classes defines

#define hmap unordered_map
#define hset unordered_set
#define mp make_pair
#define mt make_tuple
#define pb push_back

#define e1(c) get<0>(c)
#define e2(c) get<1>(c)
#define e3(c) get<2>(c)
#define e4(c) get<3>(c)
#define e5(c) get<4>(c)
#define e6(c) get<5>(c)
#define e7(c) get<6>(c)
#define e8(c) get<7>(c)

/// general defines && functions

#define Eps 1e-12
#define INF  (1000*1000*1000)

#define loop(i,n) for( i=0;i<n;++i )

inline bool eq( const ld a,const ld b )
{
    return fabsl(a-b)<Eps;
}
inline bool _less( const ld a,const ld b )
{
    return (a-b)<-Eps;
}
inline bool _lesseq( const ld a,const ld b )
{
    return (a-b)<Eps;
}
inline bool _greater( const ld a,const ld b )
{
    return (a-b)>Eps;
}
inline bool _greatereq( const ld a,const ld b )
{
    return (a-b)>-Eps;
}
/// END OF DEFINES

/// RMQ
template <typename T>
struct rmq
{
    T Max, Add;
    int MaxInd;

    rmq *L, *R;
    int l, r;
    rmq( int b, int e )
    {
        Max = MaxInd = Add = 0;
        L = R = NULL;
        l = b;
        r = e;
        if (l != r)
        {
            L = new rmq( l, (l + r) / 2 );
            R = new rmq( (l + r) / 2 + 1, r );
        }
    }
    void ADD( int b, int e, T x )
    {
        if ( b > r || e < l )
            return;
        if ( b <= l && e >= r )
        {
            Add += x;
            MaxInd = (l+r)/2;
        }
        else
        {
            L->ADD( b, e, x );
            R->ADD( b, e, x );
            if( L->Max + L->Add > R->Max + R->Add )
            {
                Max = L->Max + L->Add;
                MaxInd = L->MaxInd;
            }
            else
            {
                Max = R->Max + R->Add;
                MaxInd = R->MaxInd;
            }
            //Max = max( L->Max + L->Add, R->Max + R->Add );
        }
    }
    T MAX( int b, int e )
    {
        if ( b > r || e < l )
            return -INF;
        if ( b <= l && e >= r )
            return Max + Add;
        else
        {
            return max
                   (
                       L->MAX( b, e ),
                       R->MAX( b, e )
                   ) + Add;
        }
    }
    pair<T,int> MAX_ind( int b, int e )
    {
        if ( b > r || e < l )
            return make_pair(-INF,0);
        if ( b <= l && e >= r )
            return make_pair(Max + Add,MaxInd);
        else
        {
            pair<T,int> Max =
                max
                (
                    L->MAX( b, e ),
                    R->MAX( b, e )
                );
            Max.first+=Add;
            return Max;
        }
    }
};

inline int __segment_len(int a1,int b1,int a2,int b2)
{
    int len = min(b1,b2) - max(a1,a2) +1;
    return (len>0)?len:0;
}

/// RSQ
template <typename T>
struct rsq
{
    T Sum, Add;

    rsq *L, *R;
    int l, r;
    rsq( int b, int e )
    {
        Sum = Add = 0;
        L = R = NULL;
        l = b;
        r = e;
        if (l != r)
        {
            L = new rsq( l, (l + r) / 2 );
            R = new rsq( (l + r) / 2 + 1, r );
        }
    }
    T ADD( int b, int e, T x )
    {
        if ( b > r || e < l )
            return 0;
        if ( b <= l && e >= r )
        {
            Add += x;
        }
        else
        {
            L->ADD( b, e, x );
            R->ADD( b, e, x );
            Sum = L->Sum + L->Add*(L->r-L->l+1) + R->Sum + R->Add*(R->r-R->l+1);
        }
    }
    T SUM( int b, int e )
    {
        if ( b > r || e < l )
            return 0;
        if ( b <= l && e >= r )
            return Sum + Add*(r-l+1);
        else
        {
            return L->SUM(b,e)+R->SUM(b,e)+Add*( __segment_len(b,e,l,r) );
        }
    }
};

struct pt
{
    ld x,y;
    pt( ld _x,ld _y ):x(_x),y(_y) {}
    pt( const pt &P ):x(P.x),y(P.y) {}
    ld len(){return sqrtl(x*x+y*y);}
};
ld vect( pt&a,pt &b )
{
    return a.x*b.y - a.y*b.x;
}
ld sq(pt&a,pt &b)
{
    return a.x+b.x + a.y*b.y;
}
ld angle(pt&a,pt&b)
{
    return atan2l(vect(a,b),sq(a,b));
}

struct md
{
    ld x;
    md() {}
    md(ld _x):x(_x) {}
};
bool operator < ( const md &a,const md &b )
{
    return _less(a.x,b.x);
}
bool operator==( const md &a,const md &b)
{
    return eq(a.x,b.x);
}

ld apply( ld x,int a,int b )
{
    if( b==0 )
        return 0;
    if( a==0 && b!=0 )
    {
        return 1e+30;
    }
    x*=b;
    x/=a;
    return x;
}

int main()
{
    /*#ifndef ONLINE_JUDGE
        freopen("a.in","r",stdin);
    #endif*/
    ld a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    if( eq(d,0) )
    {
        cout<<"Hermione"<<endl;
    }
    ld x=1;
    x=apply(x,a,b);
    x=apply(x,c,d);
    x=apply(x,e,f);
    if( x>1+Eps )
    {
        cout<<"Ron"<<endl;
    }
    else
    {
        cout<<"Hermione"<<endl;
    }
    return 0;
}

/*
 * D. Harry Potter and Three Spells.cpp
 *
 *  Created on: Aug 8, 2015
 *      Author: Osama Hatem
 */

#include <bits/stdtr1c++.h>
#include <ext/numeric>

using namespace std;

int main() {
#ifndef ONLINE_JUDGE
	freopen("in.in", "r", stdin);
//	freopen("out.out", "w", stdout);
#endif

	int a, b, c, d, e, f;
	cin >> a >> b >> c >> d >> e >> f;
	if ((!c && d) || (!a && b && d) || (!e && f && b && d)) {
		cout << "Ron" << endl;
		return 0;
	}
	if (!b || !d || !f) {
		cout << "Hermoine" << endl;
		return 0;
	}
	double ratio = (double) b / a * d / c * f / e;
	cout << (ratio > 1.0 ? "Ron" : "Hermione") << endl;
	return 0;
}

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <vector>
#include <queue>
#include <stack>
#include <list>
#include <set>
#include <map>
//#include <unordered_set>
//#include <unordered_map>
#include <bitset>
#include <algorithm>
#include <cmath>
#include <locale>
using namespace std;
#define MS0(I) memset(I, 0, sizeof(I));
#define MS1(I) memset(I, -1, sizeof(I));
#define rep(i, n) for(int i = 0; i < (n); ++i)
#define rep1(i, s, n) for(int i = (s); i < (n); ++i)
#define per1(i, a, b) for(int i = a; i >= b; --i)
#define DRI(A) int A; scanf("%d", &A);
#define DRII(A, B) int A, B; scanf("%d %d", &A, &B);
#define DRIII(A, B, C) int A, B, C; scanf("%d %d %d", &A, &B, &C);
#define DRL(A) long long A; scanf("%lld", &A);
#define DRLL(A, B) long long A, B; scanf("%lld %lld", &A, &B);
#define DRLLL(A, B, C) long long A, B, C; scanf("%lld %lld %lld", &A, &B, &C);
#define SZ(X) ((int)X.size() )
#define MP make_pair
#define pb push_back
#define F first
#define S second
#define ALL(I) (I).begin(), (I).end()
typedef const void CV;
typedef long long LL;
typedef unsigned long long ULL;
typedef double DB;
typedef long double LDB;
typedef pair<int, int> PII;
typedef pair<int, LL> PIL;
typedef pair<LL, int> PLI;
const double eps = 1e-7;
//const double PI = acos(-1);
//////////////////////////////
const LL INFF = 1e18;
const int INF = 1e9;
const int mod = 1e9+7;
const int MAX = 1e5+7;
int main(void){
  DRLL(a, b); DRLL(c, d); DRLL(e, f);
  LL v = a*c*e;
  LL v2 = b*d*f;
  if(!a && b && d) puts("Ron");
  else if(b && !c && d) puts("Ron");
  else puts(v < v2 ? "Ron" : "Hermione");
  return 0;
}

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string.h>
#include <limits.h>
#include <cfloat>
#include <stack>
#include <queue>
#include <list>
#include <set>
#include <map>
#include <bitset>
#include <cassert>
using namespace std;
#define mem(flag) memset(flag,0,sizeof(flag))
#define Mem(flag) memset(flag,-1,sizeof(flag))
#define read(a) a=getInt()
#define En printf("\n")
#define P(a) printf("%d ",a)
#define Pn(a) printf("%d\n",a)
#define dbg(x) cout << (#x) << " = " << (x) << endl
#define rep(flag, a, b) for (int flag = (a); flag <= (b); ++flag)
#define Rep(flag, a, b) for (int flag = (a); flag >= (b); --flag)

typedef long long ll;

ll a, b, c, d, e, f;

ll gcd(ll a, ll b) {
    if (b == 0) return a;
    else return gcd(b, a % b);
}

ll lcm(ll a, ll b) {
    return a * b / gcd(a, b);
}

int main() {
    scanf("%lld%lld%lld%lld%lld%lld", &a, &b, &c, &d, &e, &f);
    if (d == 0) printf("Hermione\n");
    else {
        if (a == 0) {
            if (b == 0) {
                if (c == 0) printf("Ron\n");
                else printf("Hermione\n");
            } else printf("Hermione\n");
        } else {
            if (b == 0) {
                if (c == 0) printf("Ron\n");
                else printf("Hermione\n");
            } else {
                if (c == 0) printf("Ron\n");
                else {
                    if (f == 0) printf("Hermione\n");
                    else {
                        if (e == 0) printf("Ron\n");
                        else {
                            ll t1 = lcm(b, c);
                            ll k1 = t1 / b, k2 = t1 / c;
                            ll t2 = k2 * d;
                            ll t3 = lcm(t2, e);
                            ll ss = t3 / e * f;
                            ll ssr = t3 / t2 * k1 * a;
                            if (ss > ssr) printf("Ron\n");
                            else printf("Hermione\n");
                        }
                    }
                }
            }
        }
    }
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = 1e6+3;
const ll INF =2e15;
int a,b,c,d,e,f;
ll res;
bool calc(long long x)
{
  long long Last=x;
  if(d>0&&c==0) return true;
  if(a==0&&b>0&&d!=0) return true;
  if(d==0) return false;

  if((a==0)&&b) x=INF;
  else if(b==0) x=0;
  else x=x/a*b;

  if ((c==0)&&d) x=INF;
  else if (d==0) x=0;
  else {
    x=x/c*d;
    if (x>INF) x=INF;
  }
  if (x==0) return false;

  if ((e==0)&&f) x=INF;
  else if (e==0) x=0;
  else x=x/e*f;

  if(x>Last) return true;
  else return false;
}
int main(int argc, char const *argv[]) {

  std::cin >> a >> b >> c >> d >> e >> f;
  if(a==0 && b==0 && c==0 && c==0 && f==0 && e==0) {
    std::cout << "Hermione" << '\n';
    return 0;
  }
  if(a==0 || c==0 || e==0) {
    if(calc(100000000)) {
      std::cout << "Ron" << '\n';
    }
    else std::cout << "Hermione" << '\n';
  }
  if(calc(1LL*a*c*e)) {
    std::cout << "Ron" << '\n';
  }
  else std::cout << "Hermione" << '\n';
  return 0;
}

#include <iostream>
#include <stdio.h>
#include <vector>
#include <string>
#include <stdlib.h>
#include <set>
#include <map>
#include <cmath>

using namespace std;

int main()
{
	//freopen(".in", "r", stdin);
	//freopen(".out", "w", stdout);

	long long b1, b2, b3, e1, e2, e3;
	cin >> b1 >> e1 >> b2 >> e2 >> b3 >> e3;

	if ((b1 != 0 && e1 == 0) || (b2 != 0 && e2 == 0) || (b3 != 0 && e3 == 0))
	{
		printf("Hermione\n");
		return 0;
	}
	/*
	if ((b1 == 0 && e1 != 0) || (b2 == 0 && e2 != 0) || (b3 == 0 && e3 != 0))
	{
		printf("Ron\n");
		return 0;
	}
	*/

	if (e1*e2*e3 == 0)
	{
		printf("Hermione\n");
		return 0;
	}

	if (b1*b2*b3 == 0)
	{
		printf("Ron\n");
		return 0;
	}

	long long b = b1*b2*b3;
	long long e = (((b/b1)*e1)/b2)*e2;

	if (e > (b/e3)*b3)
	{
		printf("Ron\n");
	} else {
		printf("Hermione\n");
	}

	return 0;
}

#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <cassert>
#include <cmath>
#include <cctype>

#include <algorithm>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <deque>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <bitset>
#include <list>
#include <iterator>
#include <functional>

using namespace std;

typedef long long int64;

int64 labs(int64 a)
{
        return a<0 ? (-a) : a;
}
int64 max(int64 a, int64 b)
{
        return a>b?a:b;
}
int64 min(int64 a, int64 b)
{
        return a<b?a:b;
}
template<typename T> struct Point
{
	bool first;
        T x, y; Point(){} Point(T xx, T yy): x(xx), y(yy){}
};
template<typename T> bool operator <(const Point<T> &p1, const Point<T> &p2)
{
        return p1.x < p2.x || p1.x == p2.x && p1.y < p2.y;
}

#define mp make_pair
#define pb push_back
#define forn(i, n) for(int (i)=0; (i)<(n); (i)++)
#define forr(i, n) for(int (i)=(n)-1; (i)>=0; (i)--)
#define forit(i,c) for((i)=(c).begin(); (i)!=(c).end(); (i)++)
#define all(x) (x).begin(), (x).end()
#define zero(a) memset((a), 0, sizeof(a))

typedef vector<int> vint;
typedef vector<bool> vbool;
typedef vector<int64> vint64;
typedef Point<int64> pint;

int main()
{
	int n = 6;
	vector<int> v(n);
	forn(i, n)
	{
		cin >> v[i];
	}

	if (v[2] == 0 && v[3] != 0)
	{
		cout << "Ron";
		return 0;
	}
	if (v[3] == 0)
	{
		cout << "Hermione";
		return 0;
	}

	double now = v[0];
	forn(i, n)
	{
		if (v[i] == 0)
		{
			now = (v[i+1] == 0 ? -1 : 1e30);
		}
		else
		{
			now = now / v[i] * v[i+1];
		}
		i++;
	}

	const double EPS = 1e-9;
	if ( now - v[0] > EPS)
	{
		cout << "Ron";
	}
	else
	{
		cout << "Hermione";
	}

   return 0;
}
/*

6
3 3 1 2 3 5
2 6
1 6
4 5
5 1
3 4
5

*/

#include <bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f;
int main() {
	cin>>a>>b>>c>>d>>e>>f;
	if((a!=0 && b==0) || (c!=0 && d==0) || (e!=0 && f==0))
		cout<<"Hermione\n";
	else if(a*c*e<b*d*f)cout<<"Ron\n";
	else if(c==0 && d>0 && b>0)cout<<"Ron\n";
	else if(a==0 && b>a && d>0)cout<<"Ron\n";
	else cout<<"Hermione\n";
	return 0;
}

#include <bits/stdc++.h>
//std::transform(str.begin(), str.end(), str.begin(), tolower); // все буквы строчные
//cout<<fixed<<setprecision(9)<<double;
#define ull unsigned long long
#define mod (unsigned long long)(1e9 + 7)
double a = 1e-9;
using namespace std;
int main() {
	double arr[6];
	for(int i = 0; i < 6; ++i) {
		cin >> arr[i];
		arr[i] += a;
	}
	if(arr[0] * arr[2] * arr[4] < arr[1] * arr[3] * arr[5])
		cout << "Ron";
	else
		cout << "Hermione";
	getchar();
	getchar();
	return 0;
}

#include <iostream>

using namespace std;

int main()
{
    double a,b,c,d,e,f;

    cin >> a >> b >> c >> d >> e >> f;

    if ( (b/a)*(d/c)*(f/e) > 1 ) cout << "Ron" << endl;
    else cout << "Hermione" << endl;

    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a,b,c,d,e,f;
	cin>>a>>b>>d>>e>>f;
	if((a*c*e<b*d*f)||((a==0)&&(b*d>0))||(c==0)&&(d>0))
	{
		cout<<"Ron";
	}
	else
	{
		cout<<"Hermione";
	}
	return 0;
}

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
//	freopen("temp.txt","r",stdin);
	int a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
	int x=10000;
	int res=0;
	if (a!=0) x=x/a*b;
	else x=(x+1000*1000)*b;
	if (c!=0) x=x/c*d;
	else x=(x+1000*1000)*d;
	if (e!=0) x=x/e*f;
	else x=(x+1000*1000)*f;
	if (x<=10000) cout<<"Hermione";
	else cout<<"Ron";
	return 0;
}

#include<bits/stdc++.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(0);
	cin.tie(0);
  int a,b,c,d,e,f ,s,l=0,g=0;
  cin >> a >> b >> c >> d >> e >> f ;
  s=10000;
  int t=s;
  if (a==0&&b==0&&c==0&&d==0&&e==0&&f==0){
    cout << "Hermione";
    return 0;
  }
  if (a==0||c==0||e==0){
    cout << "Ron";
    return 0;
  }

  while (a<=s){
    s-=a;
    l+=b;
  }
  while (c<=l){
    l-=c;
    g+=d;
  }
  while (e<=g){
    g-=e;
    s+=f;
  }
  //cout << s << " " << l << " " << g <<endl;
  if (s==t&&g>0||s>t){
    cout << "Ron";
  }
  else
  cout << "Hermione";
    return 0;
}

#include <bits/stdc++.h>

using namespace std;
int cmmdc (int a, int b)
{
    int r;
    while(b)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
int cmmmc (int a, int b)
{
    return a*b/(cmmdc(a,b));
}
int main()
{
    long long t,n,i,j,mn=100003LL*100003LL,k,mx=0,tot,m,obj,st,cntp=0,cnti=0,s=0,pz,a1,b1,a2,b2,a3,b3;
    cin>>a1>>b1>>a2>>b2>>a3>>b3;
    if(b3==0)
    {
        cout<<"Hermione";
        return 0;
    }
    if(a3==0)
    {
        cout<<"Ron";
        return 0;
    }
    if(b2==0)
    {
        cout<<"Hermione";
        return 0;
    }
    if(a2==0)
    {
        cout<<"Ron";
        return 0;
    }
    if(b1==0)
    {
        cout<<"Hermione";
        return 0;
    }
    if(a1==0)
    {
        cout<<"Ron";
        return 0;
    }
    long long cr=cmmdc(a1,b1);
    a1/=cr;
    b1/=cr;
    cr=cmmdc(a2,b2);
    a2/=cr;
    b2/=cr;
    cr=cmmdc(a3,b3);
    a3/=cr;
    b3/=cr;
    cr=cmmmc(b1,a2);
    a1*=cr/b1;
    b1=cr;
    b2*=cr/a2;
    a2=cr;
    cr=cmmmc(b2,a3);
    b3*=cr/a3;
    cr/=b2;
    a1*=cr;
    b1*=cr;
    a2*=cr;
    if(a1>=b3)
        cout<<"Hermione";
    else
        cout<<"Ron";
    return 0;
}

#include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
#include<fstream>
#include<algorithm>
#include<map>

using namespace std;

int main()
{
  //freopen("1.in","r",stdin);
  long long a,b,c,d,e,f;
  cin>>a>>b>>c>>d>>e>>f;

  if(a==b && b == c && c == d && d == e &&  e == f)
    cout<<"Hermione"<<endl;

  else if(c == 0 && d != 0)
    cout<<"Ron"<<endl;

  else if(a >= b && c >= d && e >= f)
    cout<<"Hermione"<<endl;

  else if(b != 0 && d != 0 && f != 0)
    {
      if(a < b || c < d || e < f)
      cout<<"Ron"<<endl;
    }
  else if(b == 0 && c !=0 )
    cout<<"Hermione"<<endl;

  return 0;
}

#include <iostream>

int main() {
    std::string ans = "";
    double a, b, c, d, e, f;
    std::cin >> a >> b >> c >> d >> e >> f;
    if (c == 0 && d != 0)
        ans = "Ron";
    else
        if (a == 0 && b != 0)
            ans = "Ron";
        else
            if (e == 0 && f != 0)
                ans = "Ron";
  //  if (d == 0)
  //      ans = "Hermione";
    if (ans == "") {
        if (a != 0 && e != 0 && c != 0) {
            if (((b / a) * (d / c) * (f / e)) > 1)
                ans = "Ron";
            else
                ans = "Hermione";
        }
        else
            ans = "Hermione";
    }
    //ghghg
    std::cout << ans;
}

#include <iostream>
#include <cstdio>
#include <cstring>
#include <stdlib.h>
using namespace std;

int main(){
 int a,b,c,d,e,f,res=0;
while( cin>>a>>b>>c>>d>>e>>f){
if (a&&b&&c&&d&&e&&f){
                      if(b+d+f-a-c-e>0) cout<<"Ron\n";
                      else cout<<"Hermione"<<endl;
                      }
else
    if((d==0)) {cout<<"Hermione"<<endl;
                       }
    else
         if(b==0){
                  if(d-c>0) cout<<"Ron\n";
                  else cout<<"Hermione"<<endl;
                  }
         else
         if (f==0) {
                 /*if(b+d-a-c>0)cout<<"Ron\n";
                 else*/if(a!=0&&c!=0) cout<<"Hermione"<<endl;
                 }
         else
              if(a==0) {
                     /*if(d-c>0)*/cout<<"Ron\n";
                    // else cout<<"Hermione"<<endl;
                     }
              else
                   cout<<"Ron\n";

//system("pause");
}
}

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <deque>
#include <list>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <numeric>
#include <iomanip>
#include <bitset>
#include <sstream>
#include <fstream>
#define debug puts("-----")
#define ll long long int
const double pi = acos(-1.0);
const double eps = (1e-8);
const int inf = 1 << 31;
using namespace std;

double a[6];
double b[3];
double ans;

void init()
{
    ans = 1;
    for (int i = 0; i < 6; i++)
    {
        scanf("%lf", &a[i]);
    }
}

int main(int argc, char const *argv[])
{
    init();
    for (int i = 0; i < 3; i++)
    {
        if (a[2 * i] != 0)
            b[i] = a[2 * i + 1] / a[2 * i];
        else if (a[2 * i] == 0 && a[2 * i + 1] == 0)
            b[i] = 0;
        else
            b[i] = 1001;
        ans *= b[i];
    }
    ans >1 ? puts("Ron") : puts("Hermione");
    return 0;
}

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <string>
#include <hash_map>
#include <map>
#include <hash_set>
#include <set>
#include <stack>
#include <algorithm>
#include <sstream>
#include <queue>
#include <math.h>
using namespace std;
typedef long long LL;
#define mems(arr, val) memset(arr, val, sizeof(arr));
#define all(A) A.begin(), A.end()
#define forn(it, from, to) for(int it = from; it < to; ++it)
#define INF 2000000000
#define SIZE 1000009
#define mp(a, b) make_pair(a, b)

bool check(int a, int b)
{
	int delt = 0;
	for(int i = 0; i < 4; ++i)
	{
		if (a % 10 != b % 10) delt++;
		a /= 10;
		b /= 10;
	}

	return delt <= 1;
}

int get_last(int last, int cur)
{
	for(int i = max(1000, last); i <= 9999; ++i)
	{
		if (check(cur, i)) return i;
	}
	return -1;
}

int main()
{
#ifdef MY_SOL
	freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);
#endif
	LL a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
	if (a * c * e > b * d * f) cout<<"Ron"; else cout<<"Hermione";
	return 0;
}

#include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
#include<fstream>
#include<algorithm>
#include<map>

using namespace std;

int main()
{
  // freopen("1.in","r",stdin);
  long long a,b,c,d,e,f;
  cin>>a>>b>>c>>d>>e>>f;

  if(a==b && b == c && c == d && d == e &&  e == f)
    cout<<"Hermione"<<endl;

  else if(c == 0 && d != 0)
    cout<<"Ron"<<endl;

  else if(a >= b && c >= d && e >= f)
    cout<<"Hermione"<<endl;
  else if(b == 0 && c !=0 )
    cout<<"Hermione"<<endl;
  else if(a && b && c && d && e && f )
    {
    if(d*b*f > c*a*e)
      cout<<"Ron"<<endl;
    else
      cout<<"Hermione"<<endl;
    }
  else if( (a == 0 && b !=0 || e == 0 && f!=0) && d != 0)
    cout<<"Ron"<<endl;

  return 0;
}

#ifndef Local
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,popcnt,abm,mmx,avx")
#endif

#include <bits/stdc++.h>

#include <ext/numeric>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace __gnu_cxx;
using namespace std;

#define popCnt(x) (__builtin_popcountll(x))
#define sz(x) ((int)(x.size()))
#define all(v) begin(v), end(v)
typedef long long Long;
typedef double Double;

template <class T>
istream& operator>>(istream& is, vector<T>& v) {
  for (auto& x : v) {
    is >> x;
  }
  return is;
}

template <class T>
ostream& operator<<(ostream& os, vector<T>& v) {
  for (auto& x : v) {
    os << x << " ";
  }
  return os;
}

const int N = 1003;

Long sum_x[N];
Long sum_y[N];

Long sum_row[N];
Long sum_col[N];

int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#ifdef Local
  freopen("test.in", "r", stdin);
#else
#define endl '\n'
#endif

  Long a, b, c, d, e, f;
  cin >> a >> b >> c >> d >> e >> f;
  Long num = b * d * f;
  Long den = a * c * e;
  if (num >= den) {
    cout << "Ron" << endl;
  } else {
    cout << "Hermione" << endl;
  }
  return 0;
}

#include<iostream>
using namespace std;
int main()
{
	int a,b,c,d,e,f;
	cin>>a>>b>>c>>d>>e>>f;
	if(a==0 && b!=0 && d!=0)cout<<"Ron";
	else if(c==0 && d!=0)cout<<"Ron";
	else if(b==0 || d==0 || f==0)cout<<"Hermione";
	else if(c*e!=0 && a<(b*d*f)/(c*e))cout<<"Ron";
	else if(e==0 && f!=0)cout<<"Ron";
	else if(c==0 && d==0)cout<<"Hermione";
	else if(e==0 && f==0)cout<<"Hermione";
	else cout<<"Hermione";
	return 0;
}

#include <iostream>

using namespace std;

int main()
{
	int a, b, c, d, e, f, x, y;
	cin >> a >> b >> c >> d >> e >> f;
	x = a * 1000;
	y = x;
	if(a > 0 && c > 0 && e > 0)
	{
		x = (b * x) / a;
		x = (d * x)  / c;
		x = x - 1;
		x = (f * x) / e;
	}
	else if(b == 0 || d == 0 || f == 0)
		x = -1;
	if(x >= y)
		cout << "Ron" << endl;
	else
		cout << "Hermione" << endl;
	return 0;
}

#include <bits/stdc++.h>
#define NMAX 200009
#define MOD 998244353

using namespace std;

typedef long long ll;
ll lcm(ll a,ll b)
{
    ll prod=a*b,r;
    while(b){
        r=a%b;
        a=b;
        b=r;
    }
    return prod/a;
}
int main()
{
    ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    ll a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    if(b==0 || d==0 || f==0){
        cout<<"Hermione";
        return 0;
    }
    if(a==0 || c==0 || e==0){
        cout<<"Ron";
        return 0;
    }
    ll sand=lcm(lcm(a,c),e),lead,gold,initialSand=sand;
    lead=sand/a*b;
    gold=lead/c*d;
    sand=gold/e*f;
    if(sand>initialSand)
        cout<<"Ron";
    else
        cout<<"Hermione";
    return 0;
}

#include <iostream>
#include <stdio.h>
#include <vector>
#include <string>
#include <stdlib.h>
#include <set>
#include <map>
#include <cmath>

using namespace std;

int main()
{
	//freopen(".in", "r", stdin);
	//freopen(".out", "w", stdout);

	long long b1, b2, b3, e1, e2, e3;
	cin >> b1 >> e1 >> b2 >> e2 >> b3 >> e3;

	if (b3 < e2)
	{
		printf("Ron\n");
		return 0;
	}

	if ((b1 != 0 && e1 == 0) || (b2 != 0 && e2 == 0) || (b3 != 0 && e3 == 0))
	{
		printf("Hermione\n");
		return 0;
	}
	/*
	if ((b1 == 0 && e1 != 0) || (b2 == 0 && e2 != 0) || (b3 == 0 && e3 != 0))
	{
		printf("Ron\n");
		return 0;
	}
	*/

	if (e1*e2*e3 == 0)
	{
		printf("Hermione\n");
		return 0;
	}

	if (b1*b2*b3 == 0)
	{
		printf("Ron\n");
		return 0;
	}

	long long b = b1*b2*b3;
	long long e = (((b/b1)*e1)/b2)*e2;

	if (e > (b/e3)*b3)
	{
		printf("Ron\n");
	} else {
		printf("Hermione\n");
	}

	return 0;
}

#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;

#define REP(i,n) for(int i=0;i<(int)(n);++i)
#define SZ(a) ((int)((a).size()))
#define REPSZ(i,v) REP(i,SZ(v))
#define ALL(a) (a).begin(),(a).end()
template<class T>void pv(T a,T b) {for(T i = a;i!=b;++i)cout<<*i<<' ';cout<<endl;}
typedef vector<int> Vi;
typedef long long Int;

int main(){
  int a[6];
  for(; cin >> a[0]; ) {
    for(int i = 1; i < 6; i++) cin >> a[i];
    const double inf = 1e9;
    double have[3] = {};
    have[0] = 1.0;
    REP(step, 10) {
//       pv( have, have + 3 );
      for(int i = 0; i < 3; i++) {
        int j = (i + 1) % 3;
        double next;
        if ( a[i * 2] == 0 )
          if( a[i * 2 + 1] > 0 ) {
            next = have[j] + 1;
          } else {
            next = have[j] - 1;
          }
        else
          next = have[i] * a[i * 2 + 1] / a[i * 2];

        if( have[j] < next ) {
          have[j] = next;
          if ( step > 5 ) have[j] = inf;
        }
      }
    }
    bool e = have[2] > inf / 2;
    cout << (e ? "Ron" : "Hermione") << endl;
  }
  return 0;
}

#include <cstdlib>
#include <cctype>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <fstream>
#include <numeric>
#include <iomanip>
#include <bitset>
#include <list>
#include <stdexcept>
#include <functional>
#include <utility>
#include <ctime>
using namespace std;

#define PB push_back
#define MP make_pair

#define REP(i,n) for(i=0;i<(n);++i)
#define FOR(i,l,h) for(i=(l);i<=(h);++i)
#define FORD(i,h,l) for(i=(h);i>=(l);--i)
#define FORIT(a,aa) for(a=aa.begin();a!=aa.end();++a)
#define split(str) {vs.clear();istringstream sss(str);while(sss>>(str))vs.push_back(str);}

typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<double> VD;
typedef long long ll;
typedef pair<int,int> PII;

int main()
{
	int a,b,c,d,e,f,i;
	double s;
	string p="Ron",q="Hermione";
	cin>>a>>b>>c>>d>>e>>f;
	if (b*d==0) cout<<q<<endl;
	else if (a*c==0) cout<<p<<endl;
	else if (b*d*f>a*c*e) cout<<p<<endl;
	else cout<<q<<endl;
	return 0;
}

#include <iostream>
#include <cstdio>
#include <vector>
#include <set>
#include <deque>
#include <string>
#include <string.h>
#include <sstream>
#include <algorithm>
#include <map>
#include <cmath>
using namespace std;
#define MAXN (1<<17)
#define INF 1000000

int a, b, c, d, e, f;

int main() {
#ifdef _DEBUG
	freopen("input.txt", "r", stdin);
#endif
	cin>>a>>b>>c>>d>>e>>f;
	if (d==0 || b==0 && c>0 || d==0 && e>0 || f==0 && a>0) cout<<"Hermione";
	else {
		if (b*d*f > a*c*e)
			cout<<"Ron";
		else cout<<"Hermione";
	}

	return 0;
}

#include <fstream>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <queue>

using namespace std;

#define VI vector<int>
#define VS vector<string>
#define LL long long
#define FOR(i,n,m) for(int i=n;i<=m;i++)
#define REP(i,n) for(int i = 0; i < n; i++)
#define REPD(i,n) for(int i = n - 1; i>=0; i--)
#define BE(a) a.begin(), a.end()
#define PB push_back
#define MP make_pair
#define SI(a) sizeof(a)
#define FE(i, x) for (typeof((x).begin()) i = (x).begin(); i != (x).end(); i++)
#define FOR_SET(it, type, ss) for (set<type>::iterator it = ss.begin(); it!= ss.end(); it++)
#define EPS 0.0000000001

const int INFI = 2000000000;
const int goX[4] = {-1, 0, 1, 0};
const int goY[4] = {0, 1, 0, -1};

const string PROBLEM_NAME = "test";
const string INPUT_FILE = PROBLEM_NAME + ".in";
const string OUTPUT_FILE = PROBLEM_NAME + ".out";

ofstream fout (OUTPUT_FILE.c_str());
ifstream fin (INPUT_FILE.c_str());

void read_input(){
	//freopen (INPUT_FILE.c_str(),"r",stdin);
	//freopen (OUTPUT_FILE.c_str(),"w",stdout);
}

long long a, b, c, d, e, f;

string solve(){
	if (c == 0 && d > 0) return "Ron";
	if (a == 0 && d > 0) return "Ron";
	if (b == 0 || d == 0 || f == 0) return "Hermione";
	if (a == 0 || c == 0 || e == 0) return "Ron";

	return (a * c * e < b * d * f) ? "Ron" : "Hermione";
}

void m_main(){
	cin >> a >> b >> c >> d >> e >> f;
	cout << solve () << endl;
}

int main(){
	read_input();
	m_main();

	return 0;
}

#include<bits/stdc++.h>
using namespace std;

int T;
double a,b,c,d,e,f;

int main(){
	//freopen("rich.in","r",stdin);
	//freopen("rich.out","w",stdout);
		scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f);
		if(c==0){
			if(d!=0) puts("Hermione");
			else puts("Ron");
		}
		else if(b==0||d==0||f==0){
			if(d==0) puts("Ron");
			else if(b==0){
				if(c==0) puts("Hermione");
				else puts("Ron");
			}
			else{
				if(a==0) puts("Hermione");
				else puts("Ron");
			}
		}
		else if(c!=0&&e!=0){
			double ans=f/e*d/c*b;
			if(ans>a) puts("Hermione");
			else puts("Ron");
		}
		else if(e==0){
			if(f==0) puts("Ron");
			else if(b==0) puts("Ron");
			else puts("Hermione");
		}
	return 0;
}
/*0 358 622 149 728 0*/

#include<iostream>
using namespace std;
int main()
{
	int a,b,c,d,e,f,n;
	cin>>a>>b>>c>>d>>e>>f;
	if(((a==0)||(c==0)||(e==0))&&(b!=0)&&(d!=0))
	{
		cout<<"Ron"<<endl;
	}
	else if(d==0)
	{
		cout<<"Hermione"<<endl;
	}
	else if((b==0)&&(c!=0))
	{
		cout<<"Hermione"<<endl;
	}
	else if(c==0)
	{
		cout<<"Ron"<<endl;
	}
	else
	{
		n=10000/a*b/c*d/e*f;
		if(n>10000)
		{
			cout<<"Ron"<<endl;
		}
		else
		{
			cout<<"Hermione"<<endl;
		}
	}
}

#include <cstdio>

const int inf = 1000;

int main() {
    int a , b , c , d , e , f;
    scanf( "%d%d%d%d%d%d" , &a , &b , &c , &d , &e , &f );
    double t[2] , lead , gold , final , sand = 1;
    for ( int i = 0; i < 2; i++ ) {
        if ( b == 0 ) lead = 0;
        else if ( a == 0 ) lead = double(inf);
        else lead = sand * double(b) / double(a);

        if ( d == 0 ) gold = 0;
        else if ( c == 0 ) gold = double(inf);
        else gold = lead * double(d) / double(c);

        t[i] = gold;
        if ( f == 0 ) final = 0;
        else if ( e == 0 ) final = double(inf);
        else final = gold * double(f) / double(e);
        sand = final;
    }
    if ( t[1] == double(inf) ) printf( "Ron\n" );
    else printf( t[1] > t[0] ? "Ron\n" : "Hermione\n" );
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
long long a,b,c,d,e,f;
int main()
{
	scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
	if(b*d*f>a*c*e) cout<<"Ron";
	else cout<<"Hermione";
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f,res1,res2,res3;
int main()
{
    cin>>a>>b>>c>>d>>e>>f;
    if(!a&&!b&&!c&&!d&&!e&&!f)
        return cout<<"Hermione\n",0;
    if((!d||!b||(c&&!f))&&!d)
        return cout<<"Hermione\n",0;
    if(!c||(!e&&d!=0)||(!c&&d))
        return cout<<"Ron\n",0;
    if(b*d*f>a*c*e)
        return cout<<"Ron\n",0;
    return cout<<"Hermione\n",0;
}

using namespace std;
#include<algorithm>
#include<iostream>
#include<sstream>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<bitset>

#include<climits>
#include<cstring>
#include<cstdio>
#include<cmath>

template <class T> string toStr(const T &x)
{ stringstream s; s << x; return s.str(); }

template <class T> int toInt(const T &x)
{ stringstream s; s << x; int r; s >> r; return r; }

#define MPI acos(-1)
#define fr(i,j,n) for(int i=j;i<n;++i)
#define FR(i,n) fr(i,0,n)
#define foreach(x,v) for(typeof (v).begin() x = (v).begin(); x!= (v).end(); x++)
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define RI(x) scanf("%d",&x)
#define DRI(x) int x;RI(x)
#define RII(x,y) scanf("%d%d",&x,&y)
#define DRII(x,y) int x,y;RII(x,y)
#define PI(x) printf("%d ",x)
#define PIS(x) printf("%d\n",x)
#define D(x) cout<< #x " = "<<(x)<<endl
#define Dd(x) printf("#x = %lf\n", x)
#define Dbg if(1)
#define PB push_back
#define MK make_pair
#define F first
#define S second

typedef long long ll;
typedef vector<ll> vl;
typedef vector<int> vi;
typedef vector<string> vs;
typedef vector<vs> vss;
typedef vector<int,int> vii;
typedef vector<vi> vvi;
typedef pair <int,int> pii;
typedef pair <double,double> pdd;
typedef map<string,int> msi;
typedef long long int lli;

bool mycmp (pair<string,int> a,pair<string,int> b) { return (a.second<b.second); }

vector< pair<string,int> >  table;

int main()
{
    int a,b,c,d,e,f;
    cin >> a >> b >> c >> d >> e >> f;
    cout<<c<<" "<<d<<endl;
    if(a + b + c + d + e + f == 0) { cout<<"Hermione"<<endl; return 0;}
    if (c == 0 && d > 0){cout<<"Ron"<<endl; return 0;}
    if (e == 0 && f > 0) { cout<<"Ron"<<endl; return 0;}
    if (c > 0 && d == 0){ cout<<"Hermione"<<endl; return 0;}
    if (b == 0 || f == 0) { cout<<"Hermione"<<endl; return 0;}
    if (c == 0 && d == 0){ cout<<"Hermione"<<endl; return 0;}

    if(b*d*f > a*c*e) { cout<<"Ron"<<endl; return 0;}
    if(b*d*f <= a*c*e) { cout<<"Hermione"<<endl; return 0;}

}

#include<iostream>
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<string>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<sstream>
using namespace std;
#define FOR(i,n) for(i=0;i<n;i++)
#define FOR1(i,n) for(i=1;i<=n;i++)
#define FORab(i,a,b) for(i=a;i<=b;i++)
int main()
{
double a,b,c,d,e,f,t1;
    cin>>a>>b>>c>>d>>e>>f;
  /*  long long initial_sand=a;
    long long initial_lead=b,initial_gold,next_sand;
    if(__gcd(initial_lead,c)==0)
    {
        initial_gold=1000000000;
    }
    else
    {
        initial_gold=( ((initial_lead*c)/__gcd(initial_lead,c))*d)/c;
        initial_sand*=(initial_lead*c)/__gcd(initial_lead,c);
    }
    cout<<initial_sand<<" "<<initial_lead<<" "<<initial_gold<<" "<<
    if(__gcd(initial_gold,e)==0)
    {
        next_sand=10000000000000LL;
    }
    else
    {
        next_sand=( ((initial_gold*e)/__gcd(initial_gold,e))*f)/e;
        initial_sand*=((initial_gold*e)/__gcd(initial_gold,e));
    }
    if(next_sand>initial_sand)cout<<"Ron"<<endl;
    else cout<<"Hermione"<<endl;
*/
    if(d==0)cout<<"Hermione"<<endl;
    else if(b==0&&c!=0)cout<<"Hermione"<<endl;
    else if((b*d*f)/(c*e)>a)cout<<"Ron"<<endl;
    else cout<<"Hermione"<<endl;
    return 0;
}

#include <iostream>
using namespace std;
int main()
{
    int a, b, c, d, e, f;
    cin >> a >> b >> c >> d >> e >> f;

    if (b * d * f == 0 && a * c * e == 0)
    {   if (e == 0 && f != 0) cout << "Ron" << endl;
        else if (c == 0 && d != 0 && f != 0) cout << "Ron" << endl;
        else cout << "Hermione" << endl;
    }
    else if (a * c * e == 0 )
        cout << "Ron" << endl;
    else if ( b * d * f <= a * c * e)
        cout << "Hermione" << endl;
    else
        cout << "Ron" << endl;
}

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
int a[500];
double n;
int main()
{
    // freopen("a.in","r",stdin);
   // freopen("a.out","w",stdout);
    for(int i=1;i<=6;i++)
    {
            scanf("%d",&a[i]);
            if((i%2==0)&&(a[i]==0))
            {
                                   printf("Hermione\n");
                                   return 0;
            }
    }
    for(int i=1;i<=6;i++)
    if(a[i]==0)
    {
               printf("Ron\n");
               return 0;
    }
    double n=1.0/a[1]*a[2]/a[3]*a[4]/a[5]*a[6];
    if(n>1)printf("Ron\n");
    else printf("Hermione\n");
    return 0;
}

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <time.h>
#include <math.h>
using namespace std;

typedef long long LL;
typedef vector<int> VI;

#define REP(i,n) for (LL i=0; i<n; i++)
#define FOR(i,x,y) for (LL i=x; i<=y; i++)
#define ALL(c) (c).begin(), (c).end()
#define SORT(c) sort(ALL(c))

int main()
{
	double a,b,c,d,e,f;
	double res=0;
	cin>>a>>b>>c>>d>>e>>f;
	if (c == 0 && d!=0)
	{
		cout<<"Ron";
		return 0;
	}
	if (b == 0 ||  d == 0 ||  f == 0 )
	{
		cout<<"Hermione";
		return 0;
	}
	if (a == 0 ||  c == 0 ||  e == 0 )
	{
		cout<<"Ron";
		return 0;
	}

	res=(b*d*f)/(a*c*e);
	if (res>1) cout<<"Ron";
	else cout<<"Hermione";
	//system("pause");
}

#include <iostream>

using namespace std;

#define INF 1000000000

int main()
{
    int a,b,c,d,e,f;

    cin >> a >> b >> c >> d >> e >> f;

    if(b==0 || d==0 || f==0)
    {
        cout << "Hermione" << endl;
        return 0;
    }

    if(a==0 || c==0 || e==0)
    {
        cout << "Ron" << endl;
        return 0;
    }

    double am=INF;
    am*=((double)b/a);
    am*=((double)d/c);
    double v=((double)e/f)*INF;

    if(am>v)
    {
        cout << "Ron" << endl;
        return 0;
    }
    else
    {
        cout << "Hermione" << endl;
        return 0;
    }

    cout << "Ron" << endl;

    return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    if(b==0 || d==0 || f == 0)
    {
        cout<<"Hermione";
        return 0;
    }
    if(a==0 || c==0 || e==0)
    {
        cout<<"Ron";
        return 0;
    }

    double amt = 0.0;
    amt = (1.0*b)/a;
    amt = amt*a;
    amt = (amt*d)/c;
    amt = (amt*f)/e;
    if(amt > 1.0*a)
    {
        cout<<"Ron";
        return 0;
    }
    else
    cout<<"Hermione";
    return 0;
}

#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <iostream>
#include <cmath>
#include <sstream>
#include <map>
#include <set>
#include <numeric>

using namespace std;

#define pb push_back
#define INF 1000000001
#define L(s) (int)((s).size())
#define FOR(i,a,b) for (int _n(b), i(a); i < _n; i++)
#define rep(i,n) FOR(i,0,n)
#define ford(i,a,b) for(int i=(a),_b=(b);i>=_b;--i)
#define CL(a,v) memset((a),(v),sizeof(a))
#define ll long long
#define VI vector<int>
#define mp make_pair
#define pii pair<int,int>
#define x first
#define y second
#define all(c) (c).begin(), (c).end()
#define SORT(c) sort(all(c))

int main()
{
	#define LocalHost

	#ifdef LocalHost
        freopen("input.txt","r",stdin);
        //freopen("output.txt","w",stdout);
	#endif

	int a,b,c,d,e,f;

	cin >> a >> b >> c >> d >> e >> f;

	cout << ( a*c*e < b * d * f ? "Ron" : "Hermione") << endl;

	return 0;
}