using System; using System.Collections.Generic; using System.Linq; using System.Diagnostics; using System.Text; using System.Threading.Tasks; using System.Numerics; using System.IO; using static System.Math; using static Math2; using static io; class Program { static void Main(string[] args) { var wrong_answer = new wrong_answer(); wrong_answer.Solve(); } } public class wrong_answer { const int INF = 1 << 29; const long INFL = 1L << 60; const int MOD = 1000000007; const int MOD2 = 998244353; public void Solve() { var o = intm; UInt32 a = (UInt32)o[0]; UInt32 b = (UInt32)o[0]; UInt32 x = (UInt32)o[0]; UInt32 n = (UInt32)o[0]; UInt32 tk = 0; int tkodd = 0; UInt32 ao = 0; int aoodd = 0; UInt32 nx = x % 6 + 1; for (int i = 0; i < 2 * n; ++i) { nx = (a * nx + b) % 6 + 1; if (i % 2 == 0) { tk += nx; if (tk % 2 == 1) tkodd++; } else { ao += nx; if (ao % 2 == 1) aoodd++; } } write(Min(tkodd, n - tkodd), Min(aoodd, n - aoodd)); } } public static class Math2 { public static long pow(long i, long n, long MOD = 1000000007) { long res = 1; while (n > 0) { if ((n & 1) != 0) res = res * i % MOD; i = i * i % MOD; n >>= 1; } return res; } public static int pow(int i, int n, int MOD = 1000000007) { int res = 1; while (n > 0) { if ((n & 1) != 0) res = res * i % MOD; i = i * i % MOD; n >>= 1; } return res; } public static long gcd(long i, long y) { while (y != 0) { var r = i % y; i = y; y = r; } return i; } public static long lcm(long i, long y) { return i * y / gcd(i, y); } public static BigInteger bgcd(BigInteger i, BigInteger y) { while (y != 0) { var r = i % y; i = y; y = r; } return i; } public static BigInteger blcm(BigInteger i, BigInteger y) { return i * y / bgcd(i, y); } public static Dictionary primefactorization(long N) { var ret = new Dictionary(); for (long i = 2; i * i <= N; ++i) { int cnt = 0; while (N % i == 0) { cnt++; N /= i; } if (cnt != 0) ret[i] = cnt; } if (N >= 2) ret[N] = 1; return ret; } public static List divisorenumrate(long N) { var ret = new List(); for (long i = 1; i * i <= N; ++i) { if (N % i == 0) { ret.Add(i); ret.Add(N / i); } } return ret; } public static void swap(ref T a, ref T b) { var i = a; a = b; b = i; } public static void chmin(ref T a, T b) where T : IComparable { if (a.CompareTo(b) > 0) a = b; } public static void chmax(ref T a, T b) where T : IComparable { if (a.CompareTo(b) < 0) a = b; } } public static class io { //in public static string str => Console.ReadLine(); public static string[] strm => str.Split(' '); public static long[] longm => strm.Select(long.Parse).ToArray(); public static int[] intm => strm.Select(int.Parse).ToArray(); public static char[] charm => str.ToArray(); public static double[] doublem => strm.Select(double.Parse).ToArray(); public static long long1 => longm[0]; public static int int1 => intm[0]; public static char char1 => charm[0]; public static double double1 => doublem[0]; public static void write(string a) => Console.WriteLine(a); public static void write(params object[] i) => write(string.Join(" ", i)); public static void write(IEnumerable a) => write(string.Join(" ", a)); public static void yn(bool i) { if (i) write("Yes"); else write("No"); } }