func_code_string: #include <bits/stdc++.h>   using namespace std;   int i, j, k, l, n, m, s, tot, ss, t;   const int pp = 1000000007;   long long a[100010], an;   void dfs(int x, bitset<120> y, long long s) {     if (x > m / 2) {       an = (an + s) % pp;       return;     }     dfs(x + 1, y, s);     if ((a[x]) && (!y[x]))       dfs(x + 1, y | (y << x) | (y >> x) | (y << (m - x)) | (y >> (m - x)),           (s * a[x]) % pp);   }   int main() {     scanf( %d%d%d , &n, &m, &t);     for (int i = 1; i <= t; i++) {       int x;       scanf( %d , &x);       x %= m;       a[min(x, m - x)]++;     }     dfs(0, bitset<120>(1), 1);     printf( %I64d , an);     return 0;   }   