#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define ll long long
#define ull unsigned long long
#define Toggle(n,i) (n^((ll)1<<i))
#define Check(n,i) (n&((ll)1<<i))
#define Set(n,i) (n|((ll)1<<i))
#define Reset(n,i) (n&(~((ll)1<<i)))
#define fo(a,x,y) for(int i=(x);i<=(y);++i){cout<<a[i]<<" ";}cout<<endl;
#define me(arr,val) memset(arr,val,sizeof arr)
#define inf INT_MAX
#define infd DBL_MAX
#define infl LLONG_MAX
#define mod 1000000007ll
#define f first
#define s second
#define pra(a) for(auto i:a){cout<<i<<endl;}
#define all2(a,start,n) a.begin()+start,a.begin()+start+n
#define all(a) a.begin(),a.end()
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
//int dx[]={+1,-1,0,0};//vertical horizontal
//int dy[]={0,0,+1,-1};//vertical horizontal
//int dx[]={+1,+1,-1,-1,+2,-2,+2,-2};//knights move
//int dy[]={+2,-2,+2,-2,+1,+1,-1,-1};//knights move
//int dx[]={+1,-1,0,0,+1,+1,-1,-1};//vertical horizontal diagonal
//int dy[]={0,0,+1,-1,-1,+1,+1,-1};//vertical horizontal diagonal
using namespace std;
using namespace __gnu_pbds;
/*typedef tree<int, null_type,less<int>, rb_tree_tag,
tree_order_statistics_node_update>indexed_set;
for set use above*/
typedef tree<pair<int,int>, null_type,less<pair<int, int>>, rb_tree_tag,
tree_order_statistics_node_update> indexed_multiset;
template < typename F, typename S >
ostream& operator << ( ostream& os, const pair< F, S > & p ) {
return os << "(" << p.first << ", " << p.second << ")";
}
template < typename T >
ostream &operator << ( ostream & os, const vector< T > &v ) {
os << "{";
typename vector< T > :: const_iterator it;
for( it = v.begin(); it != v.end(); it++ ) {
if( it != v.begin() ) os << ", ";
os << *it;
}
return os << "}";
}
template < typename T >
ostream &operator << ( ostream & os, const set< T > &v ) {
os << "[";
typename set< T > :: const_iterator it;
for ( it = v.begin(); it != v.end(); it++ ) {
if( it != v.begin() ) os << ", ";
os << *it;
}
return os << "]";
}
template < typename T >
ostream &operator << ( ostream & os, const multiset< T > &v ) {
os << "[";
typename multiset< T > :: const_iterator it;
for ( it = v.begin(); it != v.end(); it++ ) {
if( it != v.begin() ) os << ", ";
os << *it;
}
return os << "]";
}
template < typename F, typename S >
ostream &operator << ( ostream & os, const map< F, S > &v ) {
os << "[";
typename map< F , S >::const_iterator it;
for( it = v.begin(); it != v.end(); it++ ) {
if( it != v.begin() ) os << ", ";
os << it -> first << " = " << it -> second ;
}
return os << "]";
}
#define pr(x) cerr << #x << " = " << x << endl;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
double n,m;
double sum=0;
cin>>n>>m;
while(m--)
{
double x,d;
cin>>x>>d;
if(d>=0.0)
{
sum+=d*((n*(n-1))/2.0)+x*n;
//pr(sum);
}
else
{
ll n2=((ll)n-1)/2;
//pr(n2);
sum+=(d*((n2*(n2+1))/2.0))*2.0+x*n;
if((ll)n%2==0)
sum+=(n/2)*d;
//pr(sum);
}
}
cout<<fixed<<setprecision(9)<<sum/n;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBJT1MgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHVsbCB1bnNpZ25lZCBsb25nIGxvbmcKI2RlZmluZSBUb2dnbGUobixpKSAobl4oKGxsKTE8PGkpKQojZGVmaW5lIENoZWNrKG4saSkgKG4mKChsbCkxPDxpKSkKI2RlZmluZSBTZXQobixpKSAobnwoKGxsKTE8PGkpKQojZGVmaW5lIFJlc2V0KG4saSkgKG4mKH4oKGxsKTE8PGkpKSkKI2RlZmluZSBmbyhhLHgseSkgZm9yKGludCBpPSh4KTtpPD0oeSk7KytpKXtjb3V0PDxhW2ldPDwiICI7fWNvdXQ8PGVuZGw7CiNkZWZpbmUgbWUoYXJyLHZhbCkgbWVtc2V0KGFycix2YWwsc2l6ZW9mIGFycikKI2RlZmluZSBpbmYgSU5UX01BWAojZGVmaW5lIGluZmQgREJMX01BWAojZGVmaW5lIGluZmwgTExPTkdfTUFYCiNkZWZpbmUgbW9kIDEwMDAwMDAwMDdsbAojZGVmaW5lIGYgZmlyc3QKI2RlZmluZSBzIHNlY29uZAojZGVmaW5lIHByYShhKSBmb3IoYXV0byBpOmEpe2NvdXQ8PGk8PGVuZGw7fQojZGVmaW5lIGFsbDIoYSxzdGFydCxuKSBhLmJlZ2luKCkrc3RhcnQsYS5iZWdpbigpK3N0YXJ0K24KI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLGEuZW5kKCkKI2luY2x1ZGU8ZXh0L3BiX2RzL2Fzc29jX2NvbnRhaW5lci5ocHA+CiNpbmNsdWRlPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+Ci8vaW50IGR4W109eysxLC0xLDAsMH07Ly92ZXJ0aWNhbCBob3Jpem9udGFsCi8vaW50IGR5W109ezAsMCwrMSwtMX07Ly92ZXJ0aWNhbCBob3Jpem9udGFsCi8vaW50IGR4W109eysxLCsxLC0xLC0xLCsyLC0yLCsyLC0yfTsvL2tuaWdodHMgbW92ZQovL2ludCBkeVtdPXsrMiwtMiwrMiwtMiwrMSwrMSwtMSwtMX07Ly9rbmlnaHRzIG1vdmUKLy9pbnQgZHhbXT17KzEsLTEsMCwwLCsxLCsxLC0xLC0xfTsvL3ZlcnRpY2FsIGhvcml6b250YWwgZGlhZ29uYWwKLy9pbnQgZHlbXT17MCwwLCsxLC0xLC0xLCsxLCsxLC0xfTsvL3ZlcnRpY2FsIGhvcml6b250YWwgZGlhZ29uYWwKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7Ci8qdHlwZWRlZiB0cmVlPGludCwgbnVsbF90eXBlLGxlc3M8aW50PiwgcmJfdHJlZV90YWcsCiAgICAgICAgICAgICB0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+aW5kZXhlZF9zZXQ7CmZvciBzZXQgdXNlIGFib3ZlKi8KdHlwZWRlZiB0cmVlPHBhaXI8aW50LGludD4sIG51bGxfdHlwZSxsZXNzPHBhaXI8aW50LCBpbnQ+PiwgcmJfdHJlZV90YWcsCnRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4gaW5kZXhlZF9tdWx0aXNldDsKdGVtcGxhdGUgPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBTID4Kb3N0cmVhbSYgb3BlcmF0b3IgPDwgKCBvc3RyZWFtJiBvcywgY29uc3QgcGFpcjwgRiwgUyA+ICYgcCApIHsKICAgIHJldHVybiBvcyA8PCAiKCIgPDwgcC5maXJzdCA8PCAiLCAiIDw8IHAuc2Vjb25kIDw8ICIpIjsKfQp0ZW1wbGF0ZSA8IHR5cGVuYW1lIFQgPgpvc3RyZWFtICZvcGVyYXRvciA8PCAoIG9zdHJlYW0gJiBvcywgY29uc3QgdmVjdG9yPCBUID4gJnYgKSB7CiAgICBvcyA8PCAieyI7CiAgICB0eXBlbmFtZSB2ZWN0b3I8IFQgPiA6OiBjb25zdF9pdGVyYXRvciBpdDsKICAgIGZvciggaXQgPSB2LmJlZ2luKCk7IGl0ICE9IHYuZW5kKCk7IGl0KysgKSB7CiAgICAgICAgaWYoIGl0ICE9IHYuYmVnaW4oKSApIG9zIDw8ICIsICI7CiAgICAgICAgb3MgPDwgKml0OwogICAgfQogICAgcmV0dXJuIG9zIDw8ICJ9IjsKfQp0ZW1wbGF0ZSA8IHR5cGVuYW1lIFQgPgpvc3RyZWFtICZvcGVyYXRvciA8PCAoIG9zdHJlYW0gJiBvcywgY29uc3Qgc2V0PCBUID4gJnYgKSB7CiAgICBvcyA8PCAiWyI7CiAgICB0eXBlbmFtZSBzZXQ8IFQgPiA6OiBjb25zdF9pdGVyYXRvciBpdDsKICAgIGZvciAoIGl0ID0gdi5iZWdpbigpOyBpdCAhPSB2LmVuZCgpOyBpdCsrICkgewogICAgICAgIGlmKCBpdCAhPSB2LmJlZ2luKCkgKSBvcyA8PCAiLCAiOwogICAgICAgIG9zIDw8ICppdDsKICAgIH0KICAgIHJldHVybiBvcyA8PCAiXSI7Cn0KdGVtcGxhdGUgPCB0eXBlbmFtZSBUID4Kb3N0cmVhbSAmb3BlcmF0b3IgPDwgKCBvc3RyZWFtICYgb3MsIGNvbnN0IG11bHRpc2V0PCBUID4gJnYgKSB7CiAgICBvcyA8PCAiWyI7CiAgICB0eXBlbmFtZSBtdWx0aXNldDwgVCA+IDo6IGNvbnN0X2l0ZXJhdG9yIGl0OwogICAgZm9yICggaXQgPSB2LmJlZ2luKCk7IGl0ICE9IHYuZW5kKCk7IGl0KysgKSB7CiAgICAgICAgaWYoIGl0ICE9IHYuYmVnaW4oKSApIG9zIDw8ICIsICI7CiAgICAgICAgb3MgPDwgKml0OwogICAgfQogICAgcmV0dXJuIG9zIDw8ICJdIjsKfQp0ZW1wbGF0ZSA8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFMgPgpvc3RyZWFtICZvcGVyYXRvciA8PCAoIG9zdHJlYW0gJiBvcywgY29uc3QgbWFwPCBGLCBTID4gJnYgKSB7CiAgICBvcyA8PCAiWyI7CiAgICB0eXBlbmFtZSBtYXA8IEYgLCBTID46OmNvbnN0X2l0ZXJhdG9yIGl0OwogICAgZm9yKCBpdCA9IHYuYmVnaW4oKTsgaXQgIT0gdi5lbmQoKTsgaXQrKyApIHsKICAgICAgICBpZiggaXQgIT0gdi5iZWdpbigpICkgb3MgPDwgIiwgIjsKICAgICAgICBvcyA8PCBpdCAtPiBmaXJzdCA8PCAiID0gIiA8PCBpdCAtPiBzZWNvbmQgOwogICAgfQogICAgcmV0dXJuIG9zIDw8ICJdIjsKfQojZGVmaW5lIHByKHgpIGNlcnIgPDwgI3ggPDwgIiA9ICIgPDwgeCA8PCBlbmRsOwoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICBkb3VibGUgbixtOwogICAgZG91YmxlIHN1bT0wOwogICAgY2luPj5uPj5tOwogICAgd2hpbGUobS0tKQogICAgewogICAgICAgIGRvdWJsZSB4LGQ7CiAgICAgICAgY2luPj54Pj5kOwogICAgICAgIGlmKGQ+PTAuMCkKICAgICAgICB7CiAgICAgICAgICAgIHN1bSs9ZCooKG4qKG4tMSkpLzIuMCkreCpuOwogICAgICAgICAgICAvL3ByKHN1bSk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGxsIG4yPSgobGwpbi0xKS8yOwogICAgICAgICAgICAvL3ByKG4yKTsKICAgICAgICAgICAgc3VtKz0oZCooKG4yKihuMisxKSkvMi4wKSkqMi4wK3gqbjsKICAgICAgICAgICAgaWYoKGxsKW4lMj09MCkKICAgICAgICAgICAgICAgIHN1bSs9KG4vMikqZDsKICAgICAgICAgICAgLy9wcihzdW0pOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQ8PGZpeGVkPDxzZXRwcmVjaXNpb24oOSk8PHN1bS9uOwogICAgcmV0dXJuIDA7Cn0KCg==