func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize( Ofast )   using namespace std;   void manupulate(string &str) {     for (long long int i = 0; i < str.size(); ++i) str[i] -= 48;   }   bool isprime(long long int n) {     if (n <= 1) return false;     for (long long int i = 2; i * i <= n; ++i)       if (n % i == 0) return false;     return true;   }   long long int expo(long long int a, long long int n) {     if (n == 0) return 1;     if (n == 1) return a;     long long int tmp = expo(a, n / 2);     tmp = (tmp * tmp) % (long)(1e9 + 7);     if (n & 1) tmp = (tmp * a) % (long)(1e9 + 7);     return tmp;   }   signed main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     ;     long long int t;     cin >> t;     while (t--) {       string str;       cin >> str;       set<array<long long int, 4> > s;       long long int ans = 0;       long long int x = 0, y = 0;       for (long long int i = 0; i < str.size(); ++i) {         long long int x1 = x, y1 = y;         if (str[i] ==  N )           ++y1;         else if (str[i] ==  E )           ++x1;         else if (str[i] ==  S )           --y1;         else           --x1;         array<long long int, 4> tmp = {x, y, x1, y1};         array<long long int, 4> tmp2 = {x1, y1, x, y};         if (s.find(tmp) != s.end() || s.find(tmp2) != s.end())           ++ans;         else {           s.insert(tmp);           s.insert(tmp2);           ans += 5;         }         x = x1, y = y1;       }       cout << ans <<   n ;     }     return 0;   }   