#![allow(unused_imports,non_snake_case,dead_code)] use std::{cmp::Reverse as Rev,ops::Range,collections::*,iter::*,mem::swap}; use proconio::{marker::*,*}; use proconio::input_interactive as input; // #[fastout] fn main(){ input!{ n:usize, } let mut a=(0..n).collect::>(); a.sort_by(|&i,&j|{ println!("? 2 {} {}",i,j); input!{ s:String, } if s=="Yes"{ 0u64.cmp(&1) } else{ 1u64.cmp(&0) } }); print!("!"); for &a in &a{ print!(" {a}"); } }