using System; using System.Collections.Generic; using Debug = System.Diagnostics.Debug; using StringBuilder = System.Text.StringBuilder; using System.Numerics; namespace Program { public class Solver { /// /// TLE quick sort /// public void Solve() { var n = int.Parse(Console.ReadLine()); var A = Enumerate(n, x => x + 1); var C = new int[2 * n]; Array.Sort(A, (l, r) => { if (l == r) return 0; C[0] = l; C[1] = r; Console.WriteLine("? {0}", C.AsJoinedString()); var ans = Console.ReadLine().Split(); if (ans[0] == ">") return 1; else return -1; }); Console.WriteLine("! {0}", A.AsJoinedString()); } static T[] Enumerate(int n, Func f) { var a = new T[n]; for (int i = 0; i < n; ++i) a[i] = f(i); return a; } static public void Swap(ref T a, ref T b) { var tmp = a; a = b; b = tmp; } } } #region main static class Ex { static public string AsString(this IEnumerable ie) { return new string(System.Linq.Enumerable.ToArray(ie)); } static public string AsJoinedString(this IEnumerable ie, string st = " ") { return string.Join(st, ie); } static public void Main() { var solver = new Program.Solver(); solver.Solve(); } } #endregion