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