// https://szkopul.edu.pl/problemset/problem/mSKiDD4jrokeNO__pazg6BaF/site/?key=statement
// Plażowicze
#include <bits/stdc++.h>
#define int long long
constexpr int sizik = 1000 * 1001;
#define ar std::array
#define pr std::pair
#define vec std::vector
typedef vec<vec<int>> _kra;
struct U {
int liczebnik, mianownik, pos, liczebnosc;
U(int l1, int m1, int p1, int l2) : liczebnik(l1), mianownik(m1), pos(p1), liczebnosc(l2) { ; }
};
#define s static_cast<__int128_t>
int compare(int a1, int b1, int a2, int b2) {
if (b1 == 0 || b2 == 0) {
throw std::invalid_argument("Denominator cannot be zero");
}
__int128_t left = s(a1) * s(b2);
__int128_t right = s(a2) * s(b1);
if (left > right) {
return 1;
} else if (left == right) {
return 2;
} else {
return 3;
}
}
struct cmp {
bool operator()(const U& a, const U& b) const {
int r = compare(a.liczebnik, a.mianownik, b.liczebnik, b.mianownik);
if (r == 1) {
return false;
} else if (r == 2) {
return a.pos > b.pos;
} else if (r == 3) {
return true;
}
throw std::invalid_argument("wtf");
}
};
void divide(int& a, int& b, int c) {
b *= c;
int g = std::__gcd(a, b);
a /= g;
b /= g;
}
void multiply(int& a, int& b, int c) {
a *= c;
int g = std::__gcd(a, b);
a /= g;
b /= g;
}
std::pair<int, int> sum(int a1, int b1, int a2, int b2) {
int numerator = a1 * b2 + a2 * b1;
int denominator = b1 * b2;
int gcd_value = std::__gcd(numerator, denominator);
numerator /= gcd_value;
denominator /= gcd_value;
return {numerator, denominator};
}
void solve() {
int n, X, z;
std::cin >> n >> X >> z;
std::vector<int> v(n);
for (auto& a : v) {
std::cin >> a;
}
std::priority_queue<U, vec<U>, cmp> q;
for (int i = 1; i < v.size(); i++) {
q.push({v[i] - v[i - 1], 1ll, v[i - 1], 0ll});
}
std::vector<std::pair<int, int>> pp(z);
int idx = 0;
for (auto& [a, j] : pp) {
std::cin >> a;
j = idx++;
}
std::sort(pp.begin(), pp.end());
std::vector<std::pair<int, int>> ans(z);
int akt = 0;
idx = 0;
while (idx < z) {
const auto [curr, local_idx] = pp[idx];
auto t = q.top();
if (akt < curr && curr <= akt + (1 << t.liczebnosc)) {
int x = t.liczebnik * (1 + 2 * (curr - akt - 1)) + t.pos * 2 * t.mianownik;
int y = 2 * t.mianownik;
int g = std::__gcd(x, y);
x /= g;
y /= g;
ans[local_idx] = {x, y};
idx++;
} else {
akt += (1 << t.liczebnosc);
q.pop();
divide(t.liczebnik, t.mianownik, 2);
t.liczebnosc++;
q.push(t);
}
}
for (const auto& [x, y] : ans) {
std::cout << x << "/" << y << '\n';
}
}
int32_t main() {
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);
std::cout.tie(0);
int t = 1;
// std::cin >> t;
for (; t > 0; t--) {
solve();
}
return 0;
}