#include<iostream>
#include<vector>
using namespace std;
int n,len;
int t[26];
int u[26];
vector<int> G[26];
bool visited[26];
string str;

void dfs(int pos){
  visited[pos]=true;
  for(int i=0;i<(int)G[pos].size();i++){
    int w=G[pos][i];
    if(visited[w])continue;
    dfs(w);
  }
}

int main(){
  while(cin>>n&&n){
    for(int i=0;i<26;i++){
      t[i]=u[i]=0;
      visited[i]=false;
      G[i].clear();
    }
    int c;
    for(int i=0;i<n;i++){
      cin>>str;
      len=str.size();
      t[ str[0]-'a' ]++;
      u[ str[len-1]-'a' ]++;
      G[ str[0]-'a' ].push_back( str[len-1]-'a' );
      if(i==0)c=str[0]-'a';
    }
    dfs(c);
    bool flg=true;
    for(int i=0;i<26;i++){
      if(t[i]!=u[i])flg=false;
      if(t[i]>0&&visited[i]==false)flg=false;
    }
    if(flg)cout<<"OK"<<endl;
    else cout<<"NG"<<endl;
  }
  return 0;
}