#include <iostream>
#include <vector>
using namespace std;
int dx[] = {-1,0,1,0}, dy[] = {0,1,0,-1}, H, W;
string dir[] = {"N","E","S","W"};

bool in_range(int a, int b){
  return a >= 0 && a < b;
}

string dfs(vector<string> &C, vector< vector< vector<long long int> > > &T,
           int x, int y, long long int l, int d){
  string ret = "!";
  while(ret == "!"){
    if(T[x][y][d] > 0){
      l %= (T[x][y][d]-l);
    }else{
      T[x][y][d] = l;
    }
    
    if(l == 0){
      ret = to_string(x+1) + " " + to_string(y+1) + " " + dir[d];
    }
  
    for(int i = 0; i < 4; ++i){
      int d_ = (d+i)%4, x_ = x + dx[d_], y_ = y + dy[d_];
      //--l;
      if(in_range(x_,H) && in_range(y_,W) && C[x_][y_] != '#'){
        x = x_;
        y = y_;
        --l;
        d = d_;
        break;
      }
    }
  }
  return ret;
}

int main(){
  long long L;
  while(cin >> H >> W >> L, H){
    vector<string> C(H);
    int s_x, s_y, d;
    for(int i = 0; i < H; ++i){
      cin >> C[i];
      for(int j = 0; j < W; ++j){
        if(C[i][j] != '.' && C[i][j] != '#'){
          s_x = i;
          s_y = j;
          if(C[i][j] == 'N') d = 0;
          if(C[i][j] == 'E') d = 1;
          if(C[i][j] == 'S') d = 2;
          if(C[i][j] == 'W') d = 3;
        }
      }
    }
    vector< vector< vector<long long int> > > T(H,vector< vector<long long int> >(W,vector<long long int>(4,-1ll)));

    cout << dfs(C,T,s_x,s_y,L,d) << endl;
  }
  return 0;
}

