#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const long long LL_INF = 0x3f3f3f3f3f3f3f3f;
const double PI = 3.14159265359;
const int mod = 1000 * 1000 * 1000 + 7;
int dx[4] = {1, -1, 0, 0};
int dy[4] = {0, 0, 1, -1};
string s;
int dp[100005];
int solve(int idx) {
  if (idx == s.size()) return 1;
  int &ret = dp[idx];
  if (~ret) return ret;
  ret = 0;
  if (s[idx] == 'u' or s[idx] == 'n') {
    if (idx + 1 < s.size() and s[idx + 1] == s[idx]) {
      ret = (solve(idx + 1) + solve(idx + 2)) % mod;
    } else
      ret = solve(idx + 1) % mod;
  } else
    ret = solve(idx + 1) % mod;
  return ret;
}
int main() {
  cin >> s;
  if (s.find('w') != -1 or s.find('m') != -1) return cout << 0 << endl, 0;
  memset(dp, -1, sizeof dp);
  cout << solve(0) % mod << endl;
  return 0;
}
