#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
#include <stack>
#include <map>
#include <set>
#include <functional>
#include <utility>
#include <climits>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
#define MEM(a, b) memset(a, (b), sizeof(a))
#define FOR(i, j, k, in) for (int i=j ; i<k ; i+=in)
#define RFOR(i, j, k, in) for (int i=j ; i>=k ; i-=in)
#define REP(i, j) FOR(i, 0, j, 1)
#define RREP(i, j) RFOR(i, j, 0, 1)
#define all(cont) cont.begin(), cont.end()
#define rall(cont) cont.end(), cont.begin()
#define FOREACH(it, l) for (auto it = l.begin(); it != l.end(); it++)
#define IN(A, B, C) ( B <= A && A <= C)
#define MP make_pair
#define PB push_back
#define INF (int)1e9
#define EPS 1e-9
#define PI 3.1415926535897932384626433832795
#define MOD 1000000007
#define read(type) readInt<type>()
#define maX(a,b) ( (a) > (b) ? (a) : (b))
#define miN(a,b) ( (a) < (b) ? (a) : (b))
#define checkBit(n,b) ( (n >> b) & 1)
#define SZ(a) ((unsigned)(a.size()))
#define FI first
#define SE second
#define char2Int(c) (c-'0')
#define ABS(x) (x<0?(-x):x)
#define lowbit(x) ((x)&((x)^((x)-1)))
#define SRT(x) sort(all(x))
const double pi=acos(-1.0);
typedef pair<int, int> PII;
typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<PII> VII;
typedef vector<VI> VVI;
typedef map<int,int> MPII;
typedef set<int> SETI;
typedef multiset<int> MSETI;
typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int uint64;
// directions
const int fx[4][2] = {{0,1}, {0,-1}, {1,0}, {-1,0}};
const int fxx[8][2] = {{0,1}, {0,-1}, {1,0}, {-1,0}, {1,1}, {1,-1}, {-1,1}, {-1,-1}};
template<typename T,typename TT> ostream& operator<<(ostream &s,pair<T,TT> t) {return s<<"("<<t.first<<","<<t.second<<")";}
template<typename T> ostream& operator<<(ostream &s,vector<T> t){FOREACH(it, t)s<<*it<<" ";return s; }
template<typename T, typename U> inline void amin(T &x, U y) { if(y < x) x = y; }
template<typename T, typename U> inline void amax(T &x, U y) { if(x < y) x = y; }
template<typename type>inline type GCD(type a,type b){if(b)while((a%=b)&&(b%=a));return a+b;}
template<typename type>inline type LCM(type a,type b){return a*b/gcd(a,b);}
template <typename T> inline void write(T x)
{
int i = 20;
char buf[21];
// buf[10] = 0;
buf[20] = '\n';
do
{
buf[--i] = x % 10 + '0';
x/= 10;
}while(x);
do
{
putchar(buf[i]);
} while (buf[i++] != '\n');
}
template <typename T> inline T readInt()
{
T n=0,s=1;
char p=getchar();
if(p=='-')
s=-1;
while((p<'0'||p>'9')&&p!=EOF&&p!='-')
p=getchar();
if(p=='-')
s=-1,p=getchar();
while(p>='0'&&p<='9') {
n = (n<< 3) + (n<< 1) + (p - '0');
p=getchar();
}
return n*s;
}
struct c
{
long long x, y, i;
};
int firstsort(const void* a, const void* b)
{
c* f = (c* )a;
c* s = (c* )b;
return (f->x - s->x);
}
int secondsort(const void* a, const void* b)
{
c* f = (c* )a;
c* s = (c* )b;
return (f->i - s->i);
}
int customsort(const void* a, const void* b)
{
c* f = (c* )a;
c* s = (c* )b;
long long d1 = (f->y) - (f->x);
long long d2 = (s->y) - (s->x);
if(d1 != d2)
{
return d1 - d2;
}
else
{
if(f->x < s->x && f->y < s->y)
{
return -1;
}
else if(f->x > s->x && f->y > s->y)
{
return 1;
}
else if(f->x != s->x)
{
return f->x - s->x;
}
else
{
return f->y - s->y;
}
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int tc = 1;
//tc = read(int);
while(tc--){
long long n;
cin >> n;
c a[n];
for(long long i = 0; i < n; i++)
{
cin >> a[i].x >> a[i].y;
a[i].i = i;
}
c b[n];
for(long long i = 0; i < n; i++)
{
cin >> b[i].x;
b[i].i = i;
}
qsort(a, n, sizeof(c), customsort);
qsort(b, n, sizeof(c), firstsort);
bool possible = false, eq = false, seq = false;
for(long long i = 0; i < n; i++)
{
if((a[i].y - a[i].x) != b[i].x)
{
cout << "NO" << endl;
return 0;
}
else
{
b[i].y = i;
}
}
eq = true;
qsort(b, n, sizeof(c), secondsort);
#if 0
qsort(d, n, sizeof(c), testsort);
for(long long i = 0; i < n; i++)
{
if((a[i].y != d[i].x) || a[i].y != d[i].y)
{
cout << "NO" << endl;
return 0;
}
}
#endif
cout << "YES\n";
for(long long i = 0; i < n; i++)
{
cout << a[b[i].y].x << " " << a[b[i].y].y << endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDx1dGlsaXR5PgojaW5jbHVkZSA8Y2xpbWl0cz4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPGNzdGRsaWI+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBNRU0oYSwgYikgbWVtc2V0KGEsIChiKSwgc2l6ZW9mKGEpKQojZGVmaW5lIEZPUihpLCBqLCBrLCBpbikgZm9yIChpbnQgaT1qIDsgaTxrIDsgaSs9aW4pCiNkZWZpbmUgUkZPUihpLCBqLCBrLCBpbikgZm9yIChpbnQgaT1qIDsgaT49ayA7IGktPWluKQojZGVmaW5lIFJFUChpLCBqKSBGT1IoaSwgMCwgaiwgMSkKI2RlZmluZSBSUkVQKGksIGopIFJGT1IoaSwgaiwgMCwgMSkKI2RlZmluZSBhbGwoY29udCkgY29udC5iZWdpbigpLCBjb250LmVuZCgpCiNkZWZpbmUgcmFsbChjb250KSBjb250LmVuZCgpLCBjb250LmJlZ2luKCkKI2RlZmluZSBGT1JFQUNIKGl0LCBsKSBmb3IgKGF1dG8gaXQgPSBsLmJlZ2luKCk7IGl0ICE9IGwuZW5kKCk7IGl0KyspCiNkZWZpbmUgSU4oQSwgQiwgQykgKCBCIDw9IEEgJiYgQSA8PSBDKQojZGVmaW5lIE1QIG1ha2VfcGFpcgojZGVmaW5lIFBCIHB1c2hfYmFjawojZGVmaW5lIElORiAoaW50KTFlOQojZGVmaW5lIEVQUyAxZS05CiNkZWZpbmUgUEkgMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMzODMyNzk1CiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKI2RlZmluZSByZWFkKHR5cGUpIHJlYWRJbnQ8dHlwZT4oKQojZGVmaW5lIG1hWChhLGIpICAgICAgICAgICAgICAgICAgICAgKCAoYSkgPiAoYikgPyAoYSkgOiAoYikpCiNkZWZpbmUgbWlOKGEsYikgICAgICAgICAgICAgICAgICAgICAoIChhKSA8IChiKSA/IChhKSA6IChiKSkKI2RlZmluZSBjaGVja0JpdChuLGIpICAgICAgICAgICAgICAgICggKG4gPj4gYikgJiAxKQojZGVmaW5lIFNaKGEpICAgICAgICAgICAgICAgICAgICAgICAgKCh1bnNpZ25lZCkoYS5zaXplKCkpKQojZGVmaW5lIEZJIGZpcnN0CiNkZWZpbmUgU0Ugc2Vjb25kCiNkZWZpbmUgY2hhcjJJbnQoYykgKGMtJzAnKQojZGVmaW5lIEFCUyh4KSAoeDwwPygteCk6eCkKI2RlZmluZSBsb3diaXQoeCkgKCh4KSYoKHgpXigoeCktMSkpKQojZGVmaW5lIFNSVCh4KSBzb3J0KGFsbCh4KSkKCmNvbnN0IGRvdWJsZSBwaT1hY29zKC0xLjApOwp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IFBJSTsKdHlwZWRlZiB2ZWN0b3I8aW50PiBWSTsKdHlwZWRlZiB2ZWN0b3I8c3RyaW5nPiBWUzsKdHlwZWRlZiB2ZWN0b3I8UElJPiBWSUk7CnR5cGVkZWYgdmVjdG9yPFZJPiBWVkk7CnR5cGVkZWYgbWFwPGludCxpbnQ+IE1QSUk7CnR5cGVkZWYgc2V0PGludD4gU0VUSTsKdHlwZWRlZiBtdWx0aXNldDxpbnQ+IE1TRVRJOwp0eXBlZGVmIGxvbmcgaW50IGludDMyOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IHVpbnQzMjsKdHlwZWRlZiBsb25nIGxvbmcgaW50IGludDY0Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgIHVpbnQ2NDsKCi8vIGRpcmVjdGlvbnMKY29uc3QgaW50IGZ4WzRdWzJdID0ge3swLDF9LCB7MCwtMX0sIHsxLDB9LCB7LTEsMH19Owpjb25zdCBpbnQgZnh4WzhdWzJdID0ge3swLDF9LCB7MCwtMX0sIHsxLDB9LCB7LTEsMH0sIHsxLDF9LCB7MSwtMX0sIHstMSwxfSwgey0xLC0xfX07CnRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgVFQ+IG9zdHJlYW0mIG9wZXJhdG9yPDwob3N0cmVhbSAmcyxwYWlyPFQsVFQ+IHQpIHtyZXR1cm4gczw8IigiPDx0LmZpcnN0PDwiLCI8PHQuc2Vjb25kPDwiKSI7fQp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBvc3RyZWFtJiBvcGVyYXRvcjw8KG9zdHJlYW0gJnMsdmVjdG9yPFQ+IHQpe0ZPUkVBQ0goaXQsIHQpczw8Kml0PDwiICI7cmV0dXJuIHM7IH0KCnRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSB2b2lkIGFtaW4oVCAmeCwgVSB5KSB7IGlmKHkgPCB4KSB4ID0geTsgfQp0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgdm9pZCBhbWF4KFQgJngsIFUgeSkgeyBpZih4IDwgeSkgeCA9IHk7IH0KCnRlbXBsYXRlPHR5cGVuYW1lIHR5cGU+aW5saW5lIHR5cGUgR0NEKHR5cGUgYSx0eXBlIGIpe2lmKGIpd2hpbGUoKGElPWIpJiYoYiU9YSkpO3JldHVybiBhK2I7fQp0ZW1wbGF0ZTx0eXBlbmFtZSB0eXBlPmlubGluZSB0eXBlIExDTSh0eXBlIGEsdHlwZSBiKXtyZXR1cm4gYSpiL2djZChhLGIpO30KCnRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCB3cml0ZShUIHgpCnsKICAgIGludCBpID0gMjA7CiAgICBjaGFyIGJ1ZlsyMV07CiAgICAvLyBidWZbMTBdID0gMDsKICAgIGJ1ZlsyMF0gPSAnXG4nOwoKICAgIGRvCiAgICB7CiAgICAgICAgYnVmWy0taV0gPSB4ICUgMTAgKyAnMCc7CiAgICAgICAgeC89IDEwOwogICAgfXdoaWxlKHgpOwogICAgZG8KICAgIHsKICAgICAgICBwdXRjaGFyKGJ1ZltpXSk7CiAgICB9IHdoaWxlIChidWZbaSsrXSAhPSAnXG4nKTsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBUIHJlYWRJbnQoKQp7CiAgICBUIG49MCxzPTE7CiAgICBjaGFyIHA9Z2V0Y2hhcigpOwogICAgaWYocD09Jy0nKQogICAgICAgIHM9LTE7CiAgICB3aGlsZSgocDwnMCd8fHA+JzknKSYmcCE9RU9GJiZwIT0nLScpCiAgICAgICAgcD1nZXRjaGFyKCk7CiAgICBpZihwPT0nLScpCiAgICAgICAgcz0tMSxwPWdldGNoYXIoKTsKICAgIHdoaWxlKHA+PScwJyYmcDw9JzknKSB7CiAgICAgICAgbiA9IChuPDwgMykgKyAobjw8IDEpICsgKHAgLSAnMCcpOwogICAgICAgIHA9Z2V0Y2hhcigpOwogICAgfQoKICAgIHJldHVybiBuKnM7Cn0KCnN0cnVjdCBjCnsKICAgIGxvbmcgbG9uZyB4LCB5LCBpOwp9OwppbnQgZmlyc3Rzb3J0KGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZvaWQqIGIpCnsKICAgIGMqIGYgPSAoYyogKWE7CiAgICBjKiBzID0gKGMqICliOwogICAgcmV0dXJuIChmLT54IC0gcy0+eCk7Cn0KCmludCBzZWNvbmRzb3J0KGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZvaWQqIGIpCnsKICAgIGMqIGYgPSAoYyogKWE7CiAgICBjKiBzID0gKGMqICliOwogICAgcmV0dXJuIChmLT5pIC0gcy0+aSk7Cn0KaW50IGN1c3RvbXNvcnQoY29uc3Qgdm9pZCogYSwgY29uc3Qgdm9pZCogYikKewogICAgYyogZiA9IChjKiApYTsKICAgIGMqIHMgPSAoYyogKWI7CiAgICBsb25nIGxvbmcgZDEgPSAoZi0+eSkgLSAoZi0+eCk7CiAgICBsb25nIGxvbmcgZDIgPSAocy0+eSkgLSAocy0+eCk7CiAgICBpZihkMSAhPSBkMikKICAgIHsKICAgICAgICByZXR1cm4gZDEgLSBkMjsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBpZihmLT54IDwgcy0+eCAmJiBmLT55IDwgcy0+eSkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihmLT54ID4gcy0+eCAmJiBmLT55ID4gcy0+eSkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKGYtPnggIT0gcy0+eCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBmLT54IC0gcy0+eDsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIGYtPnkgLSBzLT55OwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CiAgICBjb3V0LnRpZSgwKTsKICAgIGludCB0YyA9IDE7CiAgICAvL3RjID0gcmVhZChpbnQpOwoKICAgIHdoaWxlKHRjLS0pewogICAgICAgIGxvbmcgbG9uZyBuOwogICAgICAgIGNpbiA+PiBuOwogICAgICAgIGMgYVtuXTsKICAgICAgICBmb3IobG9uZyBsb25nIGkgPSAwOyBpIDwgbjsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgY2luID4+IGFbaV0ueCA+PiBhW2ldLnk7CiAgICAgICAgICAgIGFbaV0uaSA9IGk7CiAgICAgICAgfQogICAgICAgIGMgYltuXTsKICAgICAgICBmb3IobG9uZyBsb25nIGkgPSAwOyBpIDwgbjsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgY2luID4+IGJbaV0ueDsKICAgICAgICAgICAgYltpXS5pID0gaTsKICAgICAgICB9CgogICAgICAgIHFzb3J0KGEsIG4sIHNpemVvZihjKSwgY3VzdG9tc29ydCk7CiAgICAgICAgcXNvcnQoYiwgbiwgc2l6ZW9mKGMpLCBmaXJzdHNvcnQpOwoKICAgICAgICBib29sIHBvc3NpYmxlID0gZmFsc2UsIGVxID0gZmFsc2UsIHNlcSA9IGZhbHNlOwogICAgICAgIGZvcihsb25nIGxvbmcgaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBpZigoYVtpXS55IC0gYVtpXS54KSAhPSBiW2ldLngpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgIk5PIiA8PCBlbmRsOwogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBiW2ldLnkgPSBpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBlcSA9IHRydWU7CiAgICAgICAgcXNvcnQoYiwgbiwgc2l6ZW9mKGMpLCBzZWNvbmRzb3J0KTsKI2lmIDAKICAgICAgICBxc29ydChkLCBuLCBzaXplb2YoYyksIHRlc3Rzb3J0KTsKCiAgICAgICAgZm9yKGxvbmcgbG9uZyBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKChhW2ldLnkgIT0gZFtpXS54KSB8fCAgYVtpXS55ICE9IGRbaV0ueSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY291dCA8PCAiTk8iIDw8IGVuZGw7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQogICAgICAgIH0KI2VuZGlmCiAgICAgICAgY291dCA8PCAiWUVTXG4iOwogICAgICAgIGZvcihsb25nIGxvbmcgaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBjb3V0IDw8IGFbYltpXS55XS54IDw8ICIgIiA8PCBhW2JbaV0ueV0ueSA8PCBlbmRsOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9