using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Competitive_Programming { class MainClass { Scanner sc; StringBuilder res; const long MOD = (long)1e9 + 7; static void Main(string[] args) { new MainClass().solve(); } void solve() { sc = new Scanner(); res = new StringBuilder(); long N = sc.NextLong(); res.Append((N % 4 == 3 ? "X" : "O")); Console.WriteLine(res); res.Clear(); } int[] grundy; int dfs(int now) { if (grundy[now] != -1) { return grundy[now]; } HashSet se = new HashSet(); for (int i = now - 1; i >= 0; i--) { se.Add(dfs(i)); } int n = 0; while (se.Contains(n)) { n++; } return grundy[now] = n; } } class Scanner { Queue buf; public Scanner() { buf = new Queue(); } private void GetBuf() { while (buf.Count == 0) { string[] stringArray = Console.ReadLine().Split(' '); if (stringArray.Length == 0 || stringArray[0] == "") { continue; } foreach (string e in stringArray) { buf.Enqueue(e); } } } public int NextInt() { return int.Parse(this.Next()); } public long NextLong() { return long.Parse(this.Next()); } public double NextDouble() { return double.Parse(this.Next()); } public string Next() { this.GetBuf(); return buf.Dequeue(); } } }