#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <vector>
#include <utility>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <map>
#include <set>
#include <stack>
#include <queue>
 
using namespace std;
 
#define pb(n)	push_back(n)
#define mp(n,m) make_pair(n,m)
#define fi 	first
#define se 	second
#define all(r) (r).begin(),(r).end()

#define rep(i,n) for(int i=0; i<(n); i++)
#define repc(i,a,b) for(int i=(a); i<(b); i++)

typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
 
const int IMAX=((1<<30)-1)*2+1;
const double EPS=1e-10;
//int mod=1000000007

char change(int a){
	if(a<26)return a+'a';
	if(a==26)return '.';
	if(a==27)return '?';
	if(a==28)return '!';
	if(a==29)return ' ';
	return '\0';
}



int main(){
	int a,b;
	string s;
	char c;
	while(cin>>s){
		string t;
		bool f=true;
		if(s.size()%2!=0)f=false;
		else{
			for(int i=0; i<s.size(); i+=2){
				a=s[i]-'1';
				b=s[i+1]-'1';
				if(a>5||b>4||a<0||b<0){
					f=false;
					break;
				}
				t+=change(a*5+b);
			}
		}
		cout<<(f?t:"NA")<<endl;
	}
	
}