#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main (){
    int flag = 1;
    double a,b,c,d,e,f,x,y,z,tmp = 1;
    scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f);
    if(d == 0){
       flag = 0;
    }
    if(a == 0 && b== 0)flag = 0;
    if(c == 0 && d== 0)flag = 0;
    if(e == 0 && f== 0)flag = 0;
    if(flag == 1){
        x = b / a;
        y = d / c;
        z = f / e;
     //   printf("%lf %lf %lf\n",x,y,z);
        if(x * y * z <= 1+1e-9)flag = 0;
    }
    if(c == 0 && d != 0)flag = 1;
    if(a == 0 && b != 0 && c != 0 && d != 0)flag = 1;
    if(b == 0 && c != 0)flag = 0;
    if(flag == 1)
        printf("Ron\n");
    else
        printf("Hermione\n");
//    system("pause");
    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;
}

// 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>
#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;
}

/*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;
}

#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 <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;
}

#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;
}

#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;

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<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<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 <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;

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;
}

/*
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 <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<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;

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;
}

#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 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>
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 <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;
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 <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 <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 <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;
     }
}
}

#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 <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 <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;
}

#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;
}

#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<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<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>
#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<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();
}

#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<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 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()
{
	//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>
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<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 <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>
#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");
}

#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 <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;
}

#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;
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 <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;
    cout<<((b * d * f > a * c * e || d && (!a && b || !c)) ? "Ron" : "Hermione");
    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 <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;
}

#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";
}

#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 <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 <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 <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;

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<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;

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;
}

#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;}

// #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>
#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;
#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(((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<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 <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 <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;

#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>
#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 <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<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>
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<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 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<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 <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<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

// 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<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;
}

//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;
}

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 <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;
}

#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>
#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<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() {
    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>
#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";
}

#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();
}

#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<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 <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<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");
}

#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;
}

#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;
}