#include <iostream>
#include <iomanip>
#include <vector>
#include <string>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <algorithm>
#include <sstream>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <numeric>
#include <cmath>
#include <climits>
#include <limits>
#include <cfloat>
#include <fstream>
using namespace std;
char table[6][7] = { { 0,0,0,0,0,0,0 },
{ 0,'a','f','k','p','u','z' },
{ 0,'b','g','l','q','v','.' },
{ 0,'c','h','m','r','w','?' },
{ 0,'d','i','n','s','x','!' },
{ 0,'e','j','o','t','y',' ' }
 };

int main()
{
//	cut here before submit 
//	freopen ("testcase.ppi", "r", stdin );
	string str = "";

	while (getline (cin, str ) ){

		string res = "";
		int len = str.length();
		int row, col;
		int i;
		bool notfound = false;

		if (len % 2 != 0 ){
			notfound = true;
		} // end if

		for (i = 0; i < len - 1; i += 2){
			col = str[i] - '0';
			row = str[i+1] - '0';
			if (col <= 0 || col >= 7 || row <= 0 || row >= 6 ){
				notfound = true;
			} // end if
		} // end for

		if (notfound ){
			cout << "NA" << endl;
			continue;
		} // end if

		for (i = 0; i < len - 1; i += 2){
			col = str[i] - '0';
			row = str[i+1] - '0';
			cout << table[row][col];
		} // end for
		cout << endl;
	} // end loop
		
	return 0;
}