#include <iostream>
#include <vector>
std::vector<int> moist(1111000, -1);
int Wetness(int n) {
    if (moist[n] == -1) {
        std::cout << "? " << n+1 << " 1 1" << std::endl;
        std::cin >> moist[n];
    }
    return moist[n];
}
int main() {
    int n, m, k, q;
    std::cin >> n >> m >> k >> q;
    
    int l = 0;
    int r = n;
    int c = (l+r)/2;
    while (l < r-1) {
        if (c > 0) {
            if (Wetness(c) < Wetness(c-1)) {
                r = c;
                c = (l+r)/2;
                continue;
            }
        }
        if (c < n-1) {
            if (Wetness(c) < Wetness(c+1)) {
                l = c+1;
                c = (l+r)/2;
                continue;
            }
        }
        break;
    }
    std::cout << "! " << c+1 << " 1  1";
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |