#include <bits/stdc++.h>
#define all(x) (x).begin(),(x).end()
#define isz(x) (int)(x).size()
typedef long long ll;
int main() {
    for (int n, k; std::cin >> n >> k; ) {
        std::vector<ll> arr(n), curr, tmp; for (auto &it : arr) { std::cin >> it; }
        if (n-- > (1 << std::min(30,k))) {
            std::cout << "No solution" << std::endl; continue; 
        }
        ll p = 0, q = std::accumulate(all(arr), ll(0));
        std::sort(all(arr));
        for (int len = -k; len < 30; ++len) {
            if (len < 0) {
                tmp.clear();
                std::merge(all(curr), all(arr), std::back_inserter(tmp));
                curr = tmp;
            }
            int sz = 0, st = 0;
            if (len >= 0 && ((n >> len) & 1)) {
                st = 1; p += curr.front();
            }
            for (int i = st; i + 1 < isz(curr); i += 2) {
                curr[sz++] = curr[i] + curr[i+1];
            }
            curr.resize(sz);
        }
        std::cout << p / std::__gcd(p,q) << '/' << q / std::__gcd(p, q) << std::endl;
    }
    return 0;
}