#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <complex>
using namespace std;

typedef long long ll;
typedef pair<int,int> P;

#define all(c) (c).begin(),(c).end()
#define pb push_back
#define mp make_pair
#define ERASE(v,i) (v).erase(remove(all(v),i),(v).end())
#define rep(i,n) for(int i=0;i<(int)n;++i)
#define each(it,c) for(typeof((c).begin()) it=(c).begin();it!=(c).end();++it)
#define debug(x) cerr<<#x<<" = "<<(x)<<endl;
#define LINE cerr<<"LINE: "<<__LINE__<<endl;

inline int toInt(string s){int v;istringstream sin(s);sin>>v;return v;}
template<class T> inline string toString(T x){ostringstream sout;sout<<x;return sout.str();}
template<class T> void preview(T a,T b){for(T it=a;it!=b;++it)cerr<<*it<<" ";cerr<<endl;}

const int INF = 100000000;
const double PI = acos(-1.0), EPS = 1e-10;

int main() {
	for(int y,m,d; cin >> y >> m >> d;) {
		if(y < 1868 || (y == 1868 && (m < 9 || (m == 9 && d < 8)))) {
			puts("pre-meiji");
		}
		else if(y < 1912 || (y == 1912 && (m < 7 || (m == 7 && d <= 29)))) {
			printf("meiji %d %d %d\n", y - 1868 + 1, m, d);
		}
		else if(y < 1926 || (y == 1926 && (m < 12 || (m == 12 && d <= 24)))) {
			printf("taisho %d %d %d\n", y - 1912 + 1, m, d);
		}
		else if(y < 1989 || (y == 1989 && (m < 1 || (m == 1 && d <= 7)))) {
			printf("showa %d %d %d\n", y - 1926 + 1, m, d);
		}
		else {
			printf("heisei %d %d %d\n", y - 1989 + 1, m, d);
		}
	}
	return 0;
}