#include <bits/stdc++.h>
using namespace std;
void setIO(string name = "") {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  if (int((name).size())) {
    freopen((name + ".in").c_str(), "r", stdin);
    freopen((name + ".out").c_str(), "w", stdout);
  }
}
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
long long mcm(long long a, long long b) { return (a * b) / gcd(a, b); }
bool prime(long long n, long long i) {
  if (i > sqrt(n)) return true;
  if (n % i == 0)
    return false;
  else
    return prime(n, i + 1);
}
struct compii {
  bool operator()(const pair<int, int> &a, const pair<int, int> &b) {
    if (a.first == a.second) return a.second < b.second;
    return a.first > b.first;
  }
};
bool comp(int a, int b) { return a > b; }
int dx[] = {1, 0, -1, 0};
int dy[] = {0, 1, 0, -1};
const int mod = 1e9 + 7;
const long long inf = 1e18;
bool check(string a, string b) {
  if (a == "rock" and b == "scissors") return true;
  if (a == "paper" and b == "rock") return true;
  if (a == "scissors" and b == "paper") return true;
  return false;
}
void solve() {
  string first, m, second;
  cin >> first >> m >> second;
  if (check(first, m) and check(first, second))
    cout << "F";
  else if (check(m, second) and check(m, first))
    cout << "M";
  else if (check(second, first) and check(second, m))
    cout << "S";
  else
    cout << "?";
}
int main() {
  setIO("");
  int t = 1;
  while (t-- > 0) solve();
  return 0;
}
