#include using namespace std; #ifdef DEBUG #include "debug.hpp" //oj-bundle-ignore #else #define dump(...) #endif using ll = long long; #define rep(i, a, b) for (int i = a; i < (b); ++i) #define sz(x) (int)(x).size() #define all(x) x.begin(), x.end() typedef pair pii; typedef vector vi; template inline bool chmin(T& a, T b) { return ((a > b) ? (a = b, 1) : (0)); } template inline bool chmax(T& a, T b) { return ((a < b) ? (a = b, 1) : (0)); } #define YesNo(f) cout << (f ? "Yes" : "No") << endl #include void solve() { // solver ll N, X; cin >> N >> X; vector A(N); rep(i, 0, N) cin >> A[i]; if (X >= 1e6) { cout << 0 << endl; return; } vector F(X + 1); rep(i, 0, N) if (A[i] <= X) F[A[i]]++; auto G = atcoder::convolution_ll(F, F); cout << G[X] << endl; } int main() { int T = 1; // cin >> T; while (T--) solve(); return 0; } /* fps-study-p002 https://yukicoder.me/problems/no/723 */