#include #include #include #include #include #include #include #include #include #include #define mkp make_pair #define mkt make_tuple #define rep(i, n) for (int i = 0; i < (n); ++i) #define all(v) v.begin(), v.end() using namespace std; typedef long long ll; const ll MOD = 1e9 + 7; // const ll MOD = 998244353; template void chmin(T &a, const T &b) { if (a > b) a = b; } template void chmax(T &a, const T &b) { if (a < b) a = b; } void solve() { int N; cin >> N; vector> output; for (int i = 0; i < N; i++) { int rig = N - i; for (int j = i + 1; j < rig; j++) { output.emplace_back(i, j); } } cout << output.size() << "\n"; for (auto [a, b] : output) cout << a + 1 << " " << b + 1 << "\n"; } int main() { cin.tie(nullptr); ios::sync_with_stdio(false); solve(); return 0; }