#include <bits/stdc++.h>
using namespace std;
void smallestTriplet(vector<int>& a, vector<int>& b,
vector<int>& c) {
// Sort three arrays
sort(a.begin(), a.end());
sort(b.begin(), b.end());
sort(c.begin(), c.end());
// Traverse three arrays from beginning
int i = 0, j = 0, k = 0, diff = INT_MAX;
int x, y, z; // Store result
while (i < a.size() && j < b.size() && k < c.size()) {
int lo = min({a[i], b[j], c[k]});
int hi = max({a[i], b[j], c[k]});
if (diff > hi - lo) {
diff = hi - lo;
x = hi, y = a[i] + b[j] + c[k] - (hi + lo), z = lo;
}
if (a[i] == lo) i++;
else if (b[j] == lo) j++;
else k++;
}
cout << x << ", " << y << ", " << z;
}
int main() {
vector<int> a = {5, 2, 8}, b = {10, 7, 12}, c = {9, 14, 6};
smallestTriplet(a, b, c);
}