#include <bits/stdc++.h>
using namespace std;
long long max(long long a, long long b) {
  if (a > b) {
    return a;
  } else {
    return b;
  }
}
long long min(long long a, long long b) {
  if (a < b) {
    return a;
  } else {
    return b;
  }
}
struct P {
  double x, y;
  P() {}
  P(int x, int y) : x(double(x)), y(double(y)) {}
  P(double x, double y) : x(x), y(y) {}
  P operator+(const P &a) const { return P(x + a.x, y + a.y); }
  P operator-(const P &a) const { return P(x - a.x, y - a.y); }
  double operator^(const P &a) const { return x * a.x + y * a.y; }
  void in() { scanf("%lf%lf", &x, &y); }
  void out() { printf("REQUIRED %.7f %.7f\n", x, y); }
  double dist(P a, P b) {
    return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
  }
  double sqdist(P a, P b) {
    return (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y);
  }
};
string x;
int dp[104][12];
string y;
bool ok = false;
int main() {
  cin >> x;
  y = "CODEFORCES";
  if (x.length() < y.length()) {
    puts("NO");
    return 0;
  }
  bool yo = true;
  for (int p = (x.length() - 10); p <= (x.length() - 1); p++)
    if (x[p] != y[p - x.length() + 10]) yo = false;
  if (yo) ok = true;
  for (int i = 0; i <= y.length() - 1; i++) {
    int k = 0;
    yo = true;
    for (int p = (0); p <= (i); p++) {
      if (x[k] != y[k]) yo = false;
      k++;
    }
    int need = 10 - i - 1;
    for (int p = (x.length() - need); p <= (x.length() - 1); p++) {
      if (x[p] != y[k]) yo = false;
      k++;
    }
    if (yo) ok = true;
  }
  if (ok)
    puts("YES");
  else
    puts("NO");
  return 0;
}
