#include using namespace std; using ll = long long; bool chmax(auto &a, auto b) { return a < b ? a = b, 1 : 0; } bool chmin(auto &a, auto b) { return a > b ? a = b, 1 : 0; } #include using mint = atcoder::modint998244353; int main() { cin.tie(nullptr); ios::sync_with_stdio(false); ll N; cin >> N; vector A(N); for (auto &&a : A) cin >> a; int M = 20; vector stand(M); for (int i = 0; i < N; ++i) for (int j = 0; j < M; ++j) stand[j] += i >> j & 1; mint ans = 0; for (int i = 0; i < N; ++i) { for (int j = 0; j < M; ++j) { if (i >> j & 1) ans += A[i] * (N - stand[j]) * (1 << j); else ans += A[i] * stand[j] * (1 << j); } } cout << ans.val() << '\n'; }